@acorex-platform/framework-client 0.0.38 → 0.0.48

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 (111) hide show
  1. package/fesm2022/acorex-platform-framework-client-auth.mjs +212 -44
  2. package/fesm2022/acorex-platform-framework-client-auth.mjs.map +1 -1
  3. package/fesm2022/{acorex-platform-framework-client-common-common-settings.provider-CzBr0cRi.mjs → acorex-platform-framework-client-common-common-settings.provider-ChU2tvyt.mjs} +31 -1
  4. package/fesm2022/acorex-platform-framework-client-common-common-settings.provider-ChU2tvyt.mjs.map +1 -0
  5. package/fesm2022/acorex-platform-framework-client-common.mjs +1172 -193
  6. package/fesm2022/acorex-platform-framework-client-common.mjs.map +1 -1
  7. package/fesm2022/acorex-platform-framework-client-core.mjs +233 -132
  8. package/fesm2022/acorex-platform-framework-client-core.mjs.map +1 -1
  9. package/fesm2022/acorex-platform-framework-client-layout-builder.mjs +295 -59
  10. package/fesm2022/acorex-platform-framework-client-layout-builder.mjs.map +1 -1
  11. package/fesm2022/{acorex-platform-framework-client-layout-components-binding-expression-editor-popup.component-Bp2cNCPO.mjs → acorex-platform-framework-client-layout-components-binding-expression-editor-popup.component-BqPaHKPM.mjs} +10 -6
  12. package/fesm2022/acorex-platform-framework-client-layout-components-binding-expression-editor-popup.component-BqPaHKPM.mjs.map +1 -0
  13. package/fesm2022/acorex-platform-framework-client-layout-components-property-viewer-inline-code-editor.component-CcpUTEVQ.mjs +66 -0
  14. package/fesm2022/acorex-platform-framework-client-layout-components-property-viewer-inline-code-editor.component-CcpUTEVQ.mjs.map +1 -0
  15. package/fesm2022/acorex-platform-framework-client-layout-components-resource-appointment-board.component-DCkpgsFH.mjs +195 -0
  16. package/fesm2022/acorex-platform-framework-client-layout-components-resource-appointment-board.component-DCkpgsFH.mjs.map +1 -0
  17. package/fesm2022/acorex-platform-framework-client-layout-components.mjs +4015 -1014
  18. package/fesm2022/acorex-platform-framework-client-layout-components.mjs.map +1 -1
  19. package/fesm2022/acorex-platform-framework-client-layout-designer.mjs +1179 -304
  20. package/fesm2022/acorex-platform-framework-client-layout-designer.mjs.map +1 -1
  21. package/fesm2022/{acorex-platform-framework-client-layout-entity-acorex-platform-framework-client-layout-entity-CvaOWbJx.mjs → acorex-platform-framework-client-layout-entity-acorex-platform-framework-client-layout-entity-UkQsf84C.mjs} +1701 -300
  22. package/fesm2022/acorex-platform-framework-client-layout-entity-acorex-platform-framework-client-layout-entity-UkQsf84C.mjs.map +1 -0
  23. package/fesm2022/{acorex-platform-framework-client-layout-entity-attachments-page.component-Ds63Rt2n.mjs → acorex-platform-framework-client-layout-entity-attachments-page.component-DmmiDLZw.mjs} +2 -2
  24. package/fesm2022/{acorex-platform-framework-client-layout-entity-attachments-page.component-Ds63Rt2n.mjs.map → acorex-platform-framework-client-layout-entity-attachments-page.component-DmmiDLZw.mjs.map} +1 -1
  25. package/fesm2022/{acorex-platform-framework-client-layout-entity-bulk-entity.command-C0pohwdo.mjs → acorex-platform-framework-client-layout-entity-bulk-entity.command-BOFTb66c.mjs} +2 -2
  26. package/fesm2022/{acorex-platform-framework-client-layout-entity-bulk-entity.command-C0pohwdo.mjs.map → acorex-platform-framework-client-layout-entity-bulk-entity.command-BOFTb66c.mjs.map} +1 -1
  27. package/fesm2022/{acorex-platform-framework-client-layout-entity-gallery-page.component-o2HuZrDN.mjs → acorex-platform-framework-client-layout-entity-gallery-page.component-Bg-cMOlQ.mjs} +2 -2
  28. package/fesm2022/{acorex-platform-framework-client-layout-entity-gallery-page.component-o2HuZrDN.mjs.map → acorex-platform-framework-client-layout-entity-gallery-page.component-Bg-cMOlQ.mjs.map} +1 -1
  29. package/fesm2022/acorex-platform-framework-client-layout-entity.mjs +2 -2
  30. package/fesm2022/acorex-platform-framework-client-layout-views.mjs +47 -8
  31. package/fesm2022/acorex-platform-framework-client-layout-views.mjs.map +1 -1
  32. package/fesm2022/acorex-platform-framework-client-layout-widget-core.mjs +3854 -3292
  33. package/fesm2022/acorex-platform-framework-client-layout-widget-core.mjs.map +1 -1
  34. package/fesm2022/acorex-platform-framework-client-layout-widgets-acorex-platform-framework-client-layout-widgets-DJNSBNVe.mjs +33319 -0
  35. package/fesm2022/acorex-platform-framework-client-layout-widgets-acorex-platform-framework-client-layout-widgets-DJNSBNVe.mjs.map +1 -0
  36. package/fesm2022/{acorex-platform-framework-client-layout-widgets-button-widget-designer.component-BDOdcoyN.mjs → acorex-platform-framework-client-layout-widgets-button-widget-designer.component-BkrPu1wO.mjs} +8 -5
  37. package/fesm2022/acorex-platform-framework-client-layout-widgets-button-widget-designer.component-BkrPu1wO.mjs.map +1 -0
  38. package/fesm2022/acorex-platform-framework-client-layout-widgets-code-editor-value.util-Cb7R1qLO.mjs +45 -0
  39. package/fesm2022/acorex-platform-framework-client-layout-widgets-code-editor-value.util-Cb7R1qLO.mjs.map +1 -0
  40. package/fesm2022/acorex-platform-framework-client-layout-widgets-code-editor-widget-column.component-BL621E1r.mjs +68 -0
  41. package/fesm2022/acorex-platform-framework-client-layout-widgets-code-editor-widget-column.component-BL621E1r.mjs.map +1 -0
  42. package/fesm2022/acorex-platform-framework-client-layout-widgets-code-editor-widget-edit.component-CVsPKhNl.mjs +88 -0
  43. package/fesm2022/acorex-platform-framework-client-layout-widgets-code-editor-widget-edit.component-CVsPKhNl.mjs.map +1 -0
  44. package/fesm2022/acorex-platform-framework-client-layout-widgets-code-editor-widget-view.component-BEq4O4al.mjs +71 -0
  45. package/fesm2022/acorex-platform-framework-client-layout-widgets-code-editor-widget-view.component-BEq4O4al.mjs.map +1 -0
  46. package/fesm2022/acorex-platform-framework-client-layout-widgets-condition-builder-edit-popup.component-WpiEHusZ.mjs +81 -0
  47. package/fesm2022/acorex-platform-framework-client-layout-widgets-condition-builder-edit-popup.component-WpiEHusZ.mjs.map +1 -0
  48. package/fesm2022/{acorex-platform-framework-client-layout-widgets-page-widget-designer.component-WzIiwnGC.mjs → acorex-platform-framework-client-layout-widgets-page-widget-designer.component-Cadl6guA.mjs} +41 -23
  49. package/fesm2022/acorex-platform-framework-client-layout-widgets-page-widget-designer.component-Cadl6guA.mjs.map +1 -0
  50. package/fesm2022/{acorex-platform-framework-client-layout-widgets-repeater-widget-column.component-4mX8aYzA.mjs → acorex-platform-framework-client-layout-widgets-repeater-widget-column.component-CKtGsWPI.mjs} +3 -3
  51. package/fesm2022/{acorex-platform-framework-client-layout-widgets-repeater-widget-column.component-4mX8aYzA.mjs.map → acorex-platform-framework-client-layout-widgets-repeater-widget-column.component-CKtGsWPI.mjs.map} +1 -1
  52. package/fesm2022/acorex-platform-framework-client-layout-widgets-scheduler-picker-widget-column.component-Clb27Loe.mjs +71 -0
  53. package/fesm2022/acorex-platform-framework-client-layout-widgets-scheduler-picker-widget-column.component-Clb27Loe.mjs.map +1 -0
  54. package/fesm2022/acorex-platform-framework-client-layout-widgets-scheduler-picker-widget-edit.component-l7q8A-D3.mjs +111 -0
  55. package/fesm2022/acorex-platform-framework-client-layout-widgets-scheduler-picker-widget-edit.component-l7q8A-D3.mjs.map +1 -0
  56. package/fesm2022/acorex-platform-framework-client-layout-widgets-scheduler-picker-widget-view.component-Cc1AH09b.mjs +77 -0
  57. package/fesm2022/acorex-platform-framework-client-layout-widgets-scheduler-picker-widget-view.component-Cc1AH09b.mjs.map +1 -0
  58. package/fesm2022/{acorex-platform-framework-client-layout-widgets-tabular-data-edit-popup.component-TWxthl21.mjs → acorex-platform-framework-client-layout-widgets-tabular-data-edit-popup.component-BCLxS3rS.mjs} +3 -3
  59. package/fesm2022/{acorex-platform-framework-client-layout-widgets-tabular-data-edit-popup.component-TWxthl21.mjs.map → acorex-platform-framework-client-layout-widgets-tabular-data-edit-popup.component-BCLxS3rS.mjs.map} +1 -1
  60. package/fesm2022/{acorex-platform-framework-client-layout-widgets-text-block-widget-designer.component-D6HFPmGC.mjs → acorex-platform-framework-client-layout-widgets-text-block-widget-designer.component-DYxgwR2E.mjs} +21 -8
  61. package/fesm2022/acorex-platform-framework-client-layout-widgets-text-block-widget-designer.component-DYxgwR2E.mjs.map +1 -0
  62. package/fesm2022/acorex-platform-framework-client-layout-widgets-trigger-expression-editor-popup.component-C2PGoC7r.mjs +124 -0
  63. package/fesm2022/acorex-platform-framework-client-layout-widgets-trigger-expression-editor-popup.component-C2PGoC7r.mjs.map +1 -0
  64. package/fesm2022/acorex-platform-framework-client-layout-widgets-triggers-widget-editor.component-DDDoPoQa.mjs +345 -0
  65. package/fesm2022/acorex-platform-framework-client-layout-widgets-triggers-widget-editor.component-DDDoPoQa.mjs.map +1 -0
  66. package/fesm2022/acorex-platform-framework-client-layout-widgets.mjs +1 -31985
  67. package/fesm2022/acorex-platform-framework-client-layout-widgets.mjs.map +1 -1
  68. package/fesm2022/acorex-platform-framework-client-realtime.mjs +2 -1
  69. package/fesm2022/acorex-platform-framework-client-realtime.mjs.map +1 -1
  70. package/fesm2022/acorex-platform-framework-client-runtime.mjs +2 -2
  71. package/fesm2022/acorex-platform-framework-client-runtime.mjs.map +1 -1
  72. package/fesm2022/{acorex-platform-framework-client-themes-default-entity-master-create-view.component-CT7WWWG0.mjs → acorex-platform-framework-client-themes-default-entity-master-create-view.component-DlS4v_zb.mjs} +3 -3
  73. package/fesm2022/acorex-platform-framework-client-themes-default-entity-master-create-view.component-DlS4v_zb.mjs.map +1 -0
  74. package/fesm2022/acorex-platform-framework-client-themes-default-entity-master-modify-view.component-DBmdBKBL.mjs +122 -0
  75. package/fesm2022/acorex-platform-framework-client-themes-default-entity-master-modify-view.component-DBmdBKBL.mjs.map +1 -0
  76. package/fesm2022/{acorex-platform-framework-client-themes-default-entity-master-single-view.component-DBUwSzvg.mjs → acorex-platform-framework-client-themes-default-entity-master-single-view.component-CkpRT1a9.mjs} +3 -3
  77. package/fesm2022/acorex-platform-framework-client-themes-default-entity-master-single-view.component-CkpRT1a9.mjs.map +1 -0
  78. package/fesm2022/acorex-platform-framework-client-themes-default.mjs +424 -103
  79. package/fesm2022/acorex-platform-framework-client-themes-default.mjs.map +1 -1
  80. package/fesm2022/{acorex-platform-framework-client-themes-shared-settings.provider-CpsAIsxj.mjs → acorex-platform-framework-client-themes-shared-settings.provider-DIkjSTU7.mjs} +102 -1
  81. package/fesm2022/acorex-platform-framework-client-themes-shared-settings.provider-DIkjSTU7.mjs.map +1 -0
  82. package/fesm2022/acorex-platform-framework-client-themes-shared.mjs +174 -22
  83. package/fesm2022/acorex-platform-framework-client-themes-shared.mjs.map +1 -1
  84. package/package.json +2 -2
  85. package/realtime/README.md +1 -1
  86. package/types/acorex-platform-framework-client-auth.d.ts +18 -1
  87. package/types/acorex-platform-framework-client-common.d.ts +243 -9
  88. package/types/acorex-platform-framework-client-core.d.ts +152 -119
  89. package/types/acorex-platform-framework-client-layout-builder.d.ts +29 -0
  90. package/types/acorex-platform-framework-client-layout-components.d.ts +717 -147
  91. package/types/acorex-platform-framework-client-layout-designer.d.ts +192 -14
  92. package/types/acorex-platform-framework-client-layout-entity.d.ts +167 -92
  93. package/types/acorex-platform-framework-client-layout-views.d.ts +23 -1
  94. package/types/acorex-platform-framework-client-layout-widget-core.d.ts +148 -40
  95. package/types/acorex-platform-framework-client-layout-widgets.d.ts +261 -119
  96. package/types/acorex-platform-framework-client-realtime.d.ts +16 -3
  97. package/types/acorex-platform-framework-client-themes-default.d.ts +62 -11
  98. package/types/acorex-platform-framework-client-themes-shared.d.ts +25 -2
  99. package/fesm2022/acorex-platform-framework-client-common-common-settings.provider-CzBr0cRi.mjs.map +0 -1
  100. package/fesm2022/acorex-platform-framework-client-layout-components-binding-expression-editor-popup.component-Bp2cNCPO.mjs.map +0 -1
  101. package/fesm2022/acorex-platform-framework-client-layout-components-file-provider-picker.popup.component-BtLEUWAA.mjs +0 -77
  102. package/fesm2022/acorex-platform-framework-client-layout-components-file-provider-picker.popup.component-BtLEUWAA.mjs.map +0 -1
  103. package/fesm2022/acorex-platform-framework-client-layout-entity-acorex-platform-framework-client-layout-entity-CvaOWbJx.mjs.map +0 -1
  104. package/fesm2022/acorex-platform-framework-client-layout-widgets-button-widget-designer.component-BDOdcoyN.mjs.map +0 -1
  105. package/fesm2022/acorex-platform-framework-client-layout-widgets-page-widget-designer.component-WzIiwnGC.mjs.map +0 -1
  106. package/fesm2022/acorex-platform-framework-client-layout-widgets-text-block-widget-designer.component-D6HFPmGC.mjs.map +0 -1
  107. package/fesm2022/acorex-platform-framework-client-themes-default-entity-master-create-view.component-CT7WWWG0.mjs.map +0 -1
  108. package/fesm2022/acorex-platform-framework-client-themes-default-entity-master-modify-view.component-DienTcPE.mjs +0 -122
  109. package/fesm2022/acorex-platform-framework-client-themes-default-entity-master-modify-view.component-DienTcPE.mjs.map +0 -1
  110. package/fesm2022/acorex-platform-framework-client-themes-default-entity-master-single-view.component-DBUwSzvg.mjs.map +0 -1
  111. package/fesm2022/acorex-platform-framework-client-themes-shared-settings.provider-CpsAIsxj.mjs.map +0 -1
@@ -1,7 +1,7 @@
1
1
  import * as i0 from '@angular/core';
2
- import { InjectionToken, inject, Injectable, Directive, computed, Injector, ChangeDetectionStrategy, Component, input, ElementRef, ViewContainerRef, signal, effect, runInInjectionContext, Optional, Inject, NgModule, EventEmitter, HostListener, Output, DestroyRef, untracked, provideAppInitializer, Pipe } from '@angular/core';
2
+ import { InjectionToken, inject, Injectable, Directive, computed, Injector, ChangeDetectionStrategy, Component, input, ElementRef, ViewContainerRef, signal, effect, runInInjectionContext, Optional, Inject, NgModule, EventEmitter, HostListener, Output, untracked, DestroyRef, provideAppInitializer, Pipe } from '@angular/core';
3
3
  import { AXTranslationService, resolveMultiLanguageString } from '@acorex/core/translation';
4
- import { resolveToSurfaceClass, isRuntimeHexSurfaceClass, buildRuntimeSurfaceCssRule, isFormContextDirty, getSmart, isSelectionValueEqual, isFormValueEqual, setSmart, summarizeFormContextDirtyDiff, AXPExpressionEvaluatorScopeProviderContext, ExpressionEvaluatorEngine, extractValue, createRandomUuid, AXPKeyboardShortcutPriority, getSystemActions, isLocaleStringMap } from '@acorex-platform/framework-shared/core';
4
+ import { resolveToSurfaceClass, isRuntimeHexSurfaceClass, buildRuntimeSurfaceCssRule, isFormContextDirty, getSmart, isSelectionValueEqual, isFormValueEqual, setSmart, summarizeFormContextDirtyDiff, AXPExpressionEvaluatorScopeProviderContext, ExpressionEvaluatorEngine, extractValue, axpGridItemPlacementClassMap, isAxpGridPlacementUtilityClass, createRandomUuid, AXPKeyboardShortcutPriority, getSystemActions, isLocaleStringMap } from '@acorex-platform/framework-shared/core';
5
5
  export { axpContextDefinitionIsAiPrompt } from '@acorex-platform/framework-shared/core';
6
6
  import { cloneDeep, isEmpty, isEqual, has, unset, isPlainObject, get, sortBy, set, isUndefined, isNil, endsWith, startsWith, includes, lte, gte, lt, gt, orderBy } from 'lodash-es';
7
7
  import { signalStore, withState, withComputed, withMethods, patchState } from '@ngrx/signals';
@@ -10,6 +10,7 @@ import * as i1 from '@acorex/components/skeleton';
10
10
  import { AXSkeletonModule } from '@acorex/components/skeleton';
11
11
  import { Subject, interval, fromEvent } from 'rxjs';
12
12
  import { AXPEntityEventsKeys } from '@acorex-platform/framework-shared/entity';
13
+ import { axpCompareHookEntries, axpFireHooks, axpRunHooksAsync } from '@acorex-platform/framework-shared/hook';
13
14
  import { toSignal } from '@angular/core/rxjs-interop';
14
15
  import * as i1$1 from '@angular/common';
15
16
  import { DOCUMENT, CommonModule } from '@angular/common';
@@ -1882,57 +1883,40 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImpor
1882
1883
  }]
1883
1884
  }], ctorParameters: () => [{ type: i0.ElementRef }], propDecorators: { data: [{ type: i0.Input, args: [{ isSignal: true, alias: "axp-data", required: false }] }], path: [{ type: i0.Input, args: [{ isSignal: true, alias: "axp-data-path", required: false }] }] } });
1884
1885
 
1885
- // src/app/directives/grid-layout.directive.ts
1886
1886
  class AXPGridLayoutDirective {
1887
1887
  constructor(el, renderer) {
1888
1888
  this.el = el;
1889
1889
  this.renderer = renderer;
1890
1890
  this.options = input.required({ ...(ngDevMode ? { debugName: "options" } : /* istanbul ignore next */ {}), alias: 'axp-grid-layout' });
1891
- }
1892
- ngOnChanges(changes) {
1893
- if (changes['options']) {
1894
- this.applyTailwindClasses();
1895
- }
1891
+ effect(() => {
1892
+ this.options();
1893
+ untracked(() => this.applyTailwindClasses());
1894
+ });
1896
1895
  }
1897
1896
  applyTailwindClasses() {
1898
- const placement = this.options()?.positions;
1899
- if (!placement)
1900
- return;
1901
- // Clear existing grid classes
1902
1897
  this.clearClasses();
1903
- // Apply new grid classes based on the input options
1904
- this.setClasses(placement.sm, '');
1905
- this.setClasses(placement.md, 'md:');
1906
- this.setClasses(placement.lg, 'lg:');
1907
- this.setClasses(placement.xl, 'xl:');
1908
- this.setClasses(placement.xxl, '2xl:');
1909
- }
1910
- setClasses(placement, prefix) {
1911
- if (placement == null)
1912
- return;
1913
- const colStart = placement.colStart ? `${prefix}col-start-${placement.colStart}` : '';
1914
- const colEnd = placement.colEnd ? `${prefix}col-end-${placement.colEnd}` : '';
1915
- const colSpan = placement.colSpan ? `${prefix}col-span-${placement.colSpan}` : '';
1916
- const rowStart = placement.rowStart ? `${prefix}row-start-${placement.rowStart}` : '';
1917
- const rowEnd = placement.rowEnd ? `${prefix}row-end-${placement.rowEnd}` : '';
1918
- const rowSpan = placement.rowSpan ? `${prefix}row-span-${placement.rowSpan}` : '';
1919
- const order = placement.order ? `${prefix}order-${placement.order}` : ''; // Handling order
1920
- [colStart, colEnd, colSpan, rowStart, rowEnd, rowSpan, order].forEach(cls => {
1921
- if (cls) {
1922
- this.renderer.addClass(this.el.nativeElement, cls);
1923
- }
1898
+ const classMap = axpGridItemPlacementClassMap({
1899
+ positions: this.options()?.positions,
1924
1900
  });
1901
+ for (const [className, enabled] of Object.entries(classMap)) {
1902
+ if (enabled) {
1903
+ this.renderer.addClass(this.el.nativeElement, className);
1904
+ }
1905
+ }
1925
1906
  }
1926
1907
  clearClasses() {
1927
- const currentClasses = this.el.nativeElement.className.split(' ');
1928
- currentClasses.forEach((className) => {
1929
- if (className.startsWith('col-') || className.startsWith('row-') || className.startsWith('order-')) {
1908
+ const current = this.el.nativeElement.className;
1909
+ if (typeof current !== 'string' || !current) {
1910
+ return;
1911
+ }
1912
+ for (const className of current.split(/\s+/)) {
1913
+ if (isAxpGridPlacementUtilityClass(className)) {
1930
1914
  this.renderer.removeClass(this.el.nativeElement, className);
1931
1915
  }
1932
- });
1916
+ }
1933
1917
  }
1934
1918
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXPGridLayoutDirective, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Directive }); }
1935
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "22.0.8", type: AXPGridLayoutDirective, isStandalone: true, selector: "[axp-grid-layout]", inputs: { options: { classPropertyName: "options", publicName: "axp-grid-layout", isSignal: true, isRequired: true, transformFunction: null } }, usesOnChanges: true, ngImport: i0 }); }
1919
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "22.0.8", type: AXPGridLayoutDirective, isStandalone: true, selector: "[axp-grid-layout]", inputs: { options: { classPropertyName: "options", publicName: "axp-grid-layout", isSignal: true, isRequired: true, transformFunction: null } }, ngImport: i0 }); }
1936
1920
  }
1937
1921
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXPGridLayoutDirective, decorators: [{
1938
1922
  type: Directive,
@@ -2386,34 +2370,51 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImpor
2386
2370
  args: [{ providedIn: 'root' }]
2387
2371
  }], ctorParameters: () => [] });
2388
2372
 
2373
+ //#region ----- Imports -----
2374
+ //#endregion
2375
+ //#region ----- Token -----
2376
+ const AXP_HOOK_PROVIDER = new InjectionToken('AXP_HOOK_PROVIDER');
2377
+ //#endregion
2378
+
2379
+ //#region ----- Imports -----
2380
+ //#endregion
2381
+ //#region ----- Service -----
2389
2382
  class AXPHookService {
2390
2383
  constructor() {
2391
- this.listenerProviders = inject(AXP_DISTRIBUTED_EVENT_LISTENER_PROVIDER, { optional: true }) || [];
2384
+ //#region ----- Services & Dependencies -----
2385
+ this.hookProviders = inject(AXP_HOOK_PROVIDER, { optional: true }) || [];
2392
2386
  this.injector = inject(Injector);
2393
2387
  }
2394
- /**
2395
- * Resolve all providers (handle both direct providers and Promise<provider>)
2396
- */
2388
+ //#endregion
2389
+ //#region ----- Provider resolution -----
2397
2390
  async resolveProviders() {
2398
- return Promise.all(this.listenerProviders.map(p => p instanceof Promise ? p : Promise.resolve(p)));
2391
+ return Promise.all(this.hookProviders.map((provider) => provider instanceof Promise ? provider : Promise.resolve(provider)));
2392
+ }
2393
+ toHookEntries(providers) {
2394
+ return providers.map((provider, sequence) => ({
2395
+ id: provider.id?.trim() || `${provider.key}#${sequence}`,
2396
+ key: provider.key,
2397
+ priority: provider.priority,
2398
+ sequence,
2399
+ execute: (input) => runInInjectionContext(this.injector, () => provider.execute(input)),
2400
+ }));
2399
2401
  }
2402
+ hooksForKey(providers, key) {
2403
+ return this.toHookEntries(providers)
2404
+ .filter((entry) => entry.key === key)
2405
+ .sort(axpCompareHookEntries);
2406
+ }
2407
+ //#endregion
2408
+ //#region ----- Public API -----
2400
2409
  /**
2401
2410
  * Fire sync hooks (fire-and-forget).
2402
2411
  * All providers with the given key will be executed.
2403
2412
  * Execution is not awaited.
2404
2413
  */
2405
2414
  fire(key, data) {
2406
- this.resolveProviders().then(providers => {
2407
- providers
2408
- .filter(p => p.key === key)
2409
- .sort((a, b) => (a.priority ?? 0) - (b.priority ?? 0))
2410
- .forEach(p => {
2411
- try {
2412
- runInInjectionContext(this.injector, () => p.execute(data));
2413
- }
2414
- catch (err) {
2415
- console.error(`[AXPHookService] Hook '${key}' failed`, err);
2416
- }
2415
+ this.resolveProviders().then((providers) => {
2416
+ axpFireHooks(this.hooksForKey(providers, key), data, (_hook, err) => {
2417
+ console.error(`[AXPHookService] Hook '${key}' failed`, err);
2417
2418
  });
2418
2419
  });
2419
2420
  }
@@ -2423,14 +2424,8 @@ class AXPHookService {
2423
2424
  * Returns the final merged data after all hooks are executed.
2424
2425
  */
2425
2426
  async runAsync(key, initialData) {
2426
- const providers = (await this.resolveProviders())
2427
- .filter(p => p.key === key)
2428
- .sort((a, b) => (a.priority ?? 0) - (b.priority ?? 0));
2429
- let data = initialData;
2430
- for (const p of providers) {
2431
- data = await Promise.resolve(runInInjectionContext(this.injector, () => p.execute(data)));
2432
- }
2433
- return data;
2427
+ const providers = await this.resolveProviders();
2428
+ return axpRunHooksAsync(this.hooksForKey(providers, key), initialData);
2434
2429
  }
2435
2430
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXPHookService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
2436
2431
  static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXPHookService, providedIn: 'root' }); }
@@ -2951,6 +2946,13 @@ class AXPKeyboardShortcutRegistry {
2951
2946
  ...(ngDevMode ? [{ debugName: "helpEntries" }] : /* istanbul ignore next */ []));
2952
2947
  this.onDocumentKeyDown = (event) => {
2953
2948
  if (event.key === 'Escape' && shouldDeferEscapeToOpenOverlay(this.document)) {
2949
+ const inner = this.resolveInnerOverlayEscapeCandidate(event);
2950
+ if (!inner) {
2951
+ return;
2952
+ }
2953
+ event.preventDefault();
2954
+ event.stopImmediatePropagation();
2955
+ void inner.binding.handler(event);
2954
2956
  return;
2955
2957
  }
2956
2958
  if (event.key === 'F1') {
@@ -3049,6 +3051,18 @@ class AXPKeyboardShortcutRegistry {
3049
3051
  this.document.addEventListener('keydown', this.onDocumentKeyDown, true);
3050
3052
  this.listenerAttached = true;
3051
3053
  }
3054
+ /**
3055
+ * Nested widget panes (select, date picker) still own Esc.
3056
+ * In-dialog editors registered above Modal (e.g. spreadsheet cell edit) may consume it
3057
+ * so the parent popup does not close.
3058
+ */
3059
+ resolveInnerOverlayEscapeCandidate(event) {
3060
+ if (getVisibleAnchoredOverlayPanes(this.document).length > 0) {
3061
+ return null;
3062
+ }
3063
+ const candidates = this.resolveActiveCandidates(event).filter((candidate) => candidate.priority > AXPKeyboardShortcutPriority.Modal);
3064
+ return candidates[0] ?? null;
3065
+ }
3052
3066
  resolveActiveCandidates(event) {
3053
3067
  const editable = isKeyboardTargetInsideEditableField(event.target);
3054
3068
  const candidates = [];
@@ -3671,63 +3685,133 @@ const OVERLAY_DETAILS_VIEW_TRACE_NS = 'OVERLAY-DETAILS-VIEW';
3671
3685
  /** Widget tree mount / settle polling ({@link AXPWidgetContainerComponent}). */
3672
3686
  const OVERLAY_WIDGET_SETTLE_TRACE_NS = 'OVERLAY-WIDGET-SETTLE';
3673
3687
 
3674
- //#region ----- Imports -----
3675
- //#endregion
3676
-
3677
3688
  //#region ----- Types -----
3678
- /**
3679
- * Packaging kind for edition modules checklist (view mode: By Type).
3680
- */
3681
- const AXP_MODULE_TYPE = {
3682
- platform: 'platform',
3683
- domain: 'domain',
3684
- integration: 'integration',
3685
- };
3686
- /**
3687
- * Business-area domain for edition modules checklist (view mode: By Domain).
3688
- * Aligns with integration domain ids where applicable.
3689
- */
3690
- const AXP_MODULE_DOMAIN = {
3691
- platform: 'platform',
3692
- humanCapital: 'human-capital',
3693
- projectManagement: 'project-management',
3694
- assetMaintenance: 'asset-maintenance',
3695
- workplaceSafety: 'workplace-safety',
3696
- assessmentLearning: 'assessment-learning',
3697
- financeCommerce: 'finance-commerce',
3698
- customerSupplier: 'customer-supplier',
3699
- communication: 'communication',
3700
- ai: 'ai',
3701
- contentDocuments: 'content-documents',
3702
- data: 'data',
3703
- operations: 'operations',
3704
- weather: 'weather',
3705
- sourceControl: 'source-control',
3706
- general: 'general',
3689
+ /** Who owns the live page snapshot. Higher wins when several pages are registered. */
3690
+ var AXPPageContextPriority;
3691
+ (function (AXPPageContextPriority) {
3692
+ AXPPageContextPriority[AXPPageContextPriority["Page"] = 10] = "Page";
3693
+ AXPPageContextPriority[AXPPageContextPriority["Overlay"] = 100] = "Overlay";
3694
+ })(AXPPageContextPriority || (AXPPageContextPriority = {}));
3695
+ /** Empty snapshot when no page has registered. */
3696
+ const AXP_PAGE_CONTEXT_EMPTY_SNAPSHOT = {
3697
+ kind: 'none',
3698
+ title: '',
3699
+ status: 'empty',
3700
+ actions: [],
3707
3701
  };
3708
3702
  //#endregion
3709
- //#region ----- Resolvers -----
3710
- /**
3711
- * Resolves module packaging type with fallbacks when unset on the manifest.
3712
- */
3713
- function resolveModuleType(manifest) {
3714
- if (manifest.type) {
3715
- return manifest.type;
3703
+
3704
+ //#region ----- Imports -----
3705
+ //#endregion
3706
+ //#region ----- Registry -----
3707
+ class AXPPageContextRegistry {
3708
+ constructor() {
3709
+ //#region ----- State Signals -----
3710
+ this.registrations = signal([], /* @ts-ignore */
3711
+ ...(ngDevMode ? [{ debugName: "registrations" }] : /* istanbul ignore next */ []));
3712
+ this.registrationSeq = 0;
3713
+ }
3714
+ //#endregion
3715
+ //#region ----- Public Methods -----
3716
+ /**
3717
+ * Registers a live page snapshot. Unregisters automatically when `owner` is destroyed.
3718
+ * Same `id` replaces the previous entry (same instance re-init). Distinct ids stack for app tabs.
3719
+ */
3720
+ register(options) {
3721
+ const { owner } = options;
3722
+ const registrationId = `${options.id}:${++this.registrationSeq}`;
3723
+ const entry = {
3724
+ registrationId,
3725
+ id: options.id,
3726
+ priority: options.priority ?? AXPPageContextPriority.Page,
3727
+ lastActivatedAt: Date.now(),
3728
+ getSnapshot: options.getSnapshot,
3729
+ run: options.run,
3730
+ };
3731
+ this.registrations.update((items) => [...items.filter((item) => item.id !== options.id), entry]);
3732
+ try {
3733
+ owner.onDestroy(() => {
3734
+ this.unregister(registrationId);
3735
+ });
3736
+ }
3737
+ catch {
3738
+ this.unregister(registrationId);
3739
+ }
3716
3740
  }
3717
- if (manifest.required) {
3718
- return AXP_MODULE_TYPE.platform;
3741
+ /** Marks a registration as the current page among the same priority (app-tab focus). */
3742
+ activate(id) {
3743
+ const now = Date.now();
3744
+ this.registrations.update((items) => items.map((item) => (item.id === id ? { ...item, lastActivatedAt: now } : item)));
3719
3745
  }
3720
- if (manifest.name.endsWith('Extension')) {
3721
- return AXP_MODULE_TYPE.integration;
3746
+ getSnapshot() {
3747
+ const top = this.peekRegistration();
3748
+ if (!top) {
3749
+ return AXP_PAGE_CONTEXT_EMPTY_SNAPSHOT;
3750
+ }
3751
+ try {
3752
+ return top.getSnapshot();
3753
+ }
3754
+ catch {
3755
+ return AXP_PAGE_CONTEXT_EMPTY_SNAPSHOT;
3756
+ }
3722
3757
  }
3723
- return AXP_MODULE_TYPE.domain;
3724
- }
3725
- /**
3726
- * Resolves module business domain with fallback when unset on the manifest.
3727
- */
3728
- function resolveModuleDomain(manifest) {
3729
- return manifest.domain || AXP_MODULE_DOMAIN.general;
3758
+ async runAction(actionId, args = {}) {
3759
+ const top = this.peekRegistration();
3760
+ if (!top) {
3761
+ return {
3762
+ success: false,
3763
+ message: 'No page context is registered.',
3764
+ snapshot: AXP_PAGE_CONTEXT_EMPTY_SNAPSHOT,
3765
+ };
3766
+ }
3767
+ try {
3768
+ return await top.run(actionId, args);
3769
+ }
3770
+ catch (error) {
3771
+ return {
3772
+ success: false,
3773
+ message: error instanceof Error ? error.message : 'Page action failed.',
3774
+ snapshot: this.safeSnapshot(top),
3775
+ };
3776
+ }
3777
+ }
3778
+ //#endregion
3779
+ //#region ----- Private Methods -----
3780
+ unregister(registrationId) {
3781
+ this.registrations.update((items) => items.filter((item) => item.registrationId !== registrationId));
3782
+ }
3783
+ peekRegistration() {
3784
+ const items = this.registrations();
3785
+ if (items.length === 0) {
3786
+ return undefined;
3787
+ }
3788
+ return [...items].sort((a, b) => {
3789
+ const byPriority = b.priority - a.priority;
3790
+ if (byPriority !== 0) {
3791
+ return byPriority;
3792
+ }
3793
+ return b.lastActivatedAt - a.lastActivatedAt;
3794
+ })[0];
3795
+ }
3796
+ safeSnapshot(entry) {
3797
+ try {
3798
+ return entry.getSnapshot();
3799
+ }
3800
+ catch {
3801
+ return AXP_PAGE_CONTEXT_EMPTY_SNAPSHOT;
3802
+ }
3803
+ }
3804
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXPPageContextRegistry, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
3805
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXPPageContextRegistry, providedIn: 'root' }); }
3730
3806
  }
3807
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXPPageContextRegistry, decorators: [{
3808
+ type: Injectable,
3809
+ args: [{
3810
+ providedIn: 'root',
3811
+ }]
3812
+ }] });
3813
+
3814
+ //#region ----- Feature Definition Types -----
3731
3815
  //#endregion
3732
3816
 
3733
3817
  //#region ---- Provider Interfaces ----
@@ -3798,8 +3882,8 @@ class AXPModuleManifestRegistry {
3798
3882
  //#region ---- Initialization ----
3799
3883
  /**
3800
3884
  * Initialize registry by loading all manifest providers.
3801
- * Should be called during app startup.
3802
- * Safe to call multiple times - will only initialize once.
3885
+ * An empty result is not kept: startup runs before login, and the ModuleDefinition
3886
+ * catalog is empty until a session exists. The next call (feature load after login) retries.
3803
3887
  */
3804
3888
  async initialize() {
3805
3889
  // If already initialized, return immediately
@@ -3818,24 +3902,9 @@ class AXPModuleManifestRegistry {
3818
3902
  * Internal initialization logic.
3819
3903
  */
3820
3904
  async _doInitialize() {
3821
- // Get manifests from injector (using useValue, they are provided directly)
3822
- let manifests;
3823
- try {
3824
- const injectedManifests = this.injector.get(AXP_MODULE_MANIFEST_PROVIDER, []);
3825
- manifests = Array.isArray(injectedManifests) ? injectedManifests : injectedManifests ? [injectedManifests] : [];
3826
- }
3827
- catch (error) {
3828
- console.error('Failed to get manifest providers from injector:', error);
3829
- manifests = [];
3830
- }
3831
- // Register all manifests directly
3905
+ const manifests = await this.resolveInjectedManifests();
3832
3906
  const registerPromises = manifests.map(async (manifest) => {
3833
3907
  try {
3834
- // Validate manifest
3835
- if (!manifest) {
3836
- console.error('Invalid manifest:', manifest);
3837
- return;
3838
- }
3839
3908
  await this.register(manifest);
3840
3909
  }
3841
3910
  catch (error) {
@@ -3843,10 +3912,34 @@ class AXPModuleManifestRegistry {
3843
3912
  }
3844
3913
  });
3845
3914
  await Promise.all(registerPromises);
3915
+ if (this.manifests.size === 0) {
3916
+ this.initializationPromise = null;
3917
+ return;
3918
+ }
3846
3919
  // Load and register features from all feature definition providers
3847
3920
  await this.loadFeatureDefinitions();
3848
3921
  this.isInitialized = true;
3849
3922
  }
3923
+ /**
3924
+ * Resolves `useValue` manifests and async catalog factories (Promise / array of rows).
3925
+ */
3926
+ async resolveInjectedManifests() {
3927
+ let injected;
3928
+ try {
3929
+ injected = this.injector.get(AXP_MODULE_MANIFEST_PROVIDER, []);
3930
+ }
3931
+ catch (error) {
3932
+ console.error('Failed to get manifest providers from injector:', error);
3933
+ return [];
3934
+ }
3935
+ const entries = Array.isArray(injected) ? injected : injected ? [injected] : [];
3936
+ const resolved = await Promise.all(entries.map(async (entry) => {
3937
+ const value = typeof entry === 'function' ? await entry() : await Promise.resolve(entry);
3938
+ return value;
3939
+ }));
3940
+ const flattened = resolved.flatMap((entry) => (Array.isArray(entry) ? entry : [entry]));
3941
+ return flattened.filter((item) => isModuleManifest(item));
3942
+ }
3850
3943
  //#endregion
3851
3944
  //#region ---- Manifest Management ----
3852
3945
  /**
@@ -4009,6 +4102,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImpor
4009
4102
  type: Injectable,
4010
4103
  args: [{ providedIn: 'root' }]
4011
4104
  }] });
4105
+ function isModuleManifest(value) {
4106
+ if (value == null || typeof value !== 'object') {
4107
+ return false;
4108
+ }
4109
+ const candidate = value;
4110
+ return typeof candidate.name === 'string' && candidate.name.length > 0;
4111
+ }
4012
4112
 
4013
4113
  //#endregion
4014
4114
  //#region ----- Tokens -----
@@ -4033,13 +4133,14 @@ const AXP_APP_STARTUP_PRIORITY = {
4033
4133
  conversationSessionSync: 4,
4034
4134
  regionalSettings: 5,
4035
4135
  terms: 6,
4136
+ /** After settings: apply User → Tenant → Platform theme before first paint. */
4137
+ layoutTheme: 3.6,
4036
4138
  /** Topic handlers / bridges that must exist before the socket connects. */
4037
4139
  realtimeHandlers: 40,
4038
4140
  /** Long-lived subscriptions that listen to connection/bus streams. */
4039
4141
  realtimeSubscriptions: 45,
4040
4142
  realtimeConnect: 50,
4041
4143
  activityInsight: 80,
4042
- layoutTheme: 100,
4043
4144
  };
4044
4145
  //#endregion
4045
4146
  //#region ----- Helpers -----
@@ -5190,5 +5291,5 @@ function provideLazyProvider(token, loader, multi = true) {
5190
5291
  * Generated bundle index. Do not edit.
5191
5292
  */
5192
5293
 
5193
- export { AXHighlightService, AXPActivityLogProvider, AXPActivityLogService, AXPAppStartUpProvider, AXPAppStartUpService, AXPBroadcastEventService, AXPCatalogScopeDefinitionProviderService, AXPColorPaletteProvider, AXPColorPaletteService, AXPColumnWidthService, AXPComponentLogoConfig, AXPComponentSlot, AXPComponentSlotDirective, AXPComponentSlotModule, AXPComponentSlotRegistryService, AXPContentCheckerDirective, AXPContextDefinitionProviderService, AXPContextEvalFactory, AXPContextStore, AXPCountdownPipe, AXPDataGenerator, AXPDblClickDirective, AXPDebugService, AXPDefaultColorPalettesProvider, AXPDeviceService, AXPDeviceType, AXPDistributedEventListenerService, AXPElementDataDirective, AXPEntityBroadcastService, AXPEntityLogoRegistrationService, AXPExpressionEvaluatorScopeProviderService, AXPExpressionEvaluatorService, AXPFeatureDefinitionProviderContext, AXPGridLayoutDirective, AXPHookService, AXPIconLogoConfig, AXPIdleSchedulerService, AXPImageUrlLogoConfig, AXPKeyboardShortcutRegistry, AXPLogoComponent, AXPLogoRegistryService, AXPModuleManifestModule, AXPModuleManifestRegistry, AXPScreenSize, AXPTagProvider, AXPTagService, AXP_ACTIVITY_LOG_PROVIDER, AXP_APP_STARTUP_PRIORITY, AXP_APP_STARTUP_TASK, AXP_CATALOG_SCOPE_DEFINITION_PROVIDER, AXP_COLOR_PALETTE_PROVIDER, AXP_COLUMN_WIDTH_PROVIDER, AXP_CONTEXT_DEFINITION_PROVIDER, AXP_DISTRIBUTED_EVENT_LISTENER_PROVIDER, AXP_ENTITY_LOGO_FALLBACK_RESOLVER, AXP_EXPRESSION_EVALUATOR_SCOPE_PROVIDER, AXP_FEATURE_DEFINITION_PROVIDER, AXP_LOGO_IMAGE_SRC_RESOLVER, AXP_LOGO_PROVIDER, AXP_LOGO_THEME_RESOLVER, AXP_MODULE_DOMAIN, AXP_MODULE_MANIFEST_PROVIDER, AXP_MODULE_TYPE, AXP_PLATFORM_LOGO_KEY, AXP_SESSION_SERVICE, AXP_SETTINGS_DEFINITION_DIALOG_OPENER, AXP_TAG_PROVIDER, AX_OVERLAY_CONTAINER_SELECTOR, AX_OVERLAY_PANE_SELECTOR, DEFAULT_CANCEL_DIALOG_ACTION_SHORTCUTS, DEFAULT_SUBMIT_DIALOG_ACTION_SHORTCUTS, FORM_DIRTY_TRACE_NS, OVERLAY_DETAILS_VIEW_TRACE_NS, OVERLAY_LAYOUT_TRACE_NS, OVERLAY_ROOT_LAYOUT_TRACE_NS, OVERLAY_WIDGET_SETTLE_TRACE_NS, applyContextEvalPipes, applyFilterArray, applyPagination, applyQueryArray, applySortArray, applySystemActionDefault, axpApplicationLogoKey, axpExtractLogoUrl, axpSsoLogoKey, axpTenantLogoKey, chordToKbdItemKeys, contextEvalWithPipes, createCommandExpressionScope, createProviderWithInjectionContext, defaultColumnWidthProvider, ensureRuntimeSurfaceClass, ensureRuntimeSurfaceClasses, findOverlayContainerAncestor, formatKeyboardShortcutChord, formatKeyboardShortcutChords, getNestedVisibleOverlayPanes, getPrimaryKeyboardShortcutChord, getTopVisibleOverlayContainer, getVisibleAnchoredOverlayPanes, getVisibleOverlayContainers, hasForegroundOverlayLayer, instantiateWithInjectionContext, isDialogShortcutAllowedInEditableField, isHorizontalDirectionalShortcutKey, isKeyboardTargetInsideEditableField, isMacPlatform, isVisibleOverlayElement, matchesDialogActionShortcut, matchesKeyboardShortcutChord, mirrorHorizontalDirectionalKey, normalizeContextEvalPipes, normalizeDialogActionShortcutChord, normalizeExpressionTemplate, normalizeKeyboardShortcut, normalizeKeyboardShortcuts, objectKeyValueTransforms, parseDialogActionShortcut, parseKeyboardShortcutChord, provideAppStartUpTask, provideLazyProvider, registerPopupFooterKeyboardShortcuts, resolveCommandExpressionData, resolveConfiguredFooterActionShortcuts, resolveDialogActionShortcuts, resolveDisplayShortcutChord, resolveEffectiveDirectionBehavior, resolveModuleDomain, resolveModuleType, resolveSemanticDirectionalKey, setupPopupFooterKeyboardShortcuts, shouldDeferEscapeToOpenOverlay, shouldTriggerDialogActionShortcut, toExpressionRecord };
5294
+ export { AXHighlightService, AXPActivityLogProvider, AXPActivityLogService, AXPAppStartUpProvider, AXPAppStartUpService, AXPBroadcastEventService, AXPCatalogScopeDefinitionProviderService, AXPColorPaletteProvider, AXPColorPaletteService, AXPColumnWidthService, AXPComponentLogoConfig, AXPComponentSlot, AXPComponentSlotDirective, AXPComponentSlotModule, AXPComponentSlotRegistryService, AXPContentCheckerDirective, AXPContextDefinitionProviderService, AXPContextEvalFactory, AXPContextStore, AXPCountdownPipe, AXPDataGenerator, AXPDblClickDirective, AXPDebugService, AXPDefaultColorPalettesProvider, AXPDeviceService, AXPDeviceType, AXPDistributedEventListenerService, AXPElementDataDirective, AXPEntityBroadcastService, AXPEntityLogoRegistrationService, AXPExpressionEvaluatorScopeProviderService, AXPExpressionEvaluatorService, AXPFeatureDefinitionProviderContext, AXPGridLayoutDirective, AXPHookService, AXPIconLogoConfig, AXPIdleSchedulerService, AXPImageUrlLogoConfig, AXPKeyboardShortcutRegistry, AXPLogoComponent, AXPLogoRegistryService, AXPModuleManifestModule, AXPModuleManifestRegistry, AXPPageContextPriority, AXPPageContextRegistry, AXPScreenSize, AXPTagProvider, AXPTagService, AXP_ACTIVITY_LOG_PROVIDER, AXP_APP_STARTUP_PRIORITY, AXP_APP_STARTUP_TASK, AXP_CATALOG_SCOPE_DEFINITION_PROVIDER, AXP_COLOR_PALETTE_PROVIDER, AXP_COLUMN_WIDTH_PROVIDER, AXP_CONTEXT_DEFINITION_PROVIDER, AXP_DISTRIBUTED_EVENT_LISTENER_PROVIDER, AXP_ENTITY_LOGO_FALLBACK_RESOLVER, AXP_EXPRESSION_EVALUATOR_SCOPE_PROVIDER, AXP_FEATURE_DEFINITION_PROVIDER, AXP_HOOK_PROVIDER, AXP_LOGO_IMAGE_SRC_RESOLVER, AXP_LOGO_PROVIDER, AXP_LOGO_THEME_RESOLVER, AXP_MODULE_MANIFEST_PROVIDER, AXP_PAGE_CONTEXT_EMPTY_SNAPSHOT, AXP_PLATFORM_LOGO_KEY, AXP_SESSION_SERVICE, AXP_SETTINGS_DEFINITION_DIALOG_OPENER, AXP_TAG_PROVIDER, AX_OVERLAY_CONTAINER_SELECTOR, AX_OVERLAY_PANE_SELECTOR, DEFAULT_CANCEL_DIALOG_ACTION_SHORTCUTS, DEFAULT_SUBMIT_DIALOG_ACTION_SHORTCUTS, FORM_DIRTY_TRACE_NS, OVERLAY_DETAILS_VIEW_TRACE_NS, OVERLAY_LAYOUT_TRACE_NS, OVERLAY_ROOT_LAYOUT_TRACE_NS, OVERLAY_WIDGET_SETTLE_TRACE_NS, applyContextEvalPipes, applyFilterArray, applyPagination, applyQueryArray, applySortArray, applySystemActionDefault, axpApplicationLogoKey, axpExtractLogoUrl, axpSsoLogoKey, axpTenantLogoKey, chordToKbdItemKeys, contextEvalWithPipes, createCommandExpressionScope, createProviderWithInjectionContext, defaultColumnWidthProvider, ensureRuntimeSurfaceClass, ensureRuntimeSurfaceClasses, findOverlayContainerAncestor, formatKeyboardShortcutChord, formatKeyboardShortcutChords, getNestedVisibleOverlayPanes, getPrimaryKeyboardShortcutChord, getTopVisibleOverlayContainer, getVisibleAnchoredOverlayPanes, getVisibleOverlayContainers, hasForegroundOverlayLayer, instantiateWithInjectionContext, isDialogShortcutAllowedInEditableField, isHorizontalDirectionalShortcutKey, isKeyboardTargetInsideEditableField, isMacPlatform, isVisibleOverlayElement, matchesDialogActionShortcut, matchesKeyboardShortcutChord, mirrorHorizontalDirectionalKey, normalizeContextEvalPipes, normalizeDialogActionShortcutChord, normalizeExpressionTemplate, normalizeKeyboardShortcut, normalizeKeyboardShortcuts, objectKeyValueTransforms, parseDialogActionShortcut, parseKeyboardShortcutChord, provideAppStartUpTask, provideLazyProvider, registerPopupFooterKeyboardShortcuts, resolveCommandExpressionData, resolveConfiguredFooterActionShortcuts, resolveDialogActionShortcuts, resolveDisplayShortcutChord, resolveEffectiveDirectionBehavior, resolveSemanticDirectionalKey, setupPopupFooterKeyboardShortcuts, shouldDeferEscapeToOpenOverlay, shouldTriggerDialogActionShortcut, toExpressionRecord };
5194
5295
  //# sourceMappingURL=acorex-platform-framework-client-core.mjs.map