@acorex/platform 21.0.0-next.70 → 21.0.0-next.72

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 (55) hide show
  1. package/fesm2022/acorex-platform-auth.mjs +10 -2
  2. package/fesm2022/acorex-platform-auth.mjs.map +1 -1
  3. package/fesm2022/{acorex-platform-common-common-settings.provider-Bi1RYif5.mjs → acorex-platform-common-common-settings.provider-Ytey9uhY.mjs} +15 -1
  4. package/fesm2022/acorex-platform-common-common-settings.provider-Ytey9uhY.mjs.map +1 -0
  5. package/fesm2022/acorex-platform-common.mjs +3798 -1674
  6. package/fesm2022/acorex-platform-common.mjs.map +1 -1
  7. package/fesm2022/acorex-platform-core.mjs +1362 -97
  8. package/fesm2022/acorex-platform-core.mjs.map +1 -1
  9. package/fesm2022/acorex-platform-layout-builder.mjs +446 -44
  10. package/fesm2022/acorex-platform-layout-builder.mjs.map +1 -1
  11. package/fesm2022/acorex-platform-layout-components.mjs +149 -109
  12. package/fesm2022/acorex-platform-layout-components.mjs.map +1 -1
  13. package/fesm2022/acorex-platform-layout-designer.mjs +199 -126
  14. package/fesm2022/acorex-platform-layout-designer.mjs.map +1 -1
  15. package/fesm2022/{acorex-platform-layout-entity-attachments-page.component-D8iQnT-R.mjs → acorex-platform-layout-entity-attachments-page.component-B0EkdqvH.mjs} +6 -1
  16. package/fesm2022/acorex-platform-layout-entity-attachments-page.component-B0EkdqvH.mjs.map +1 -0
  17. package/fesm2022/acorex-platform-layout-entity.mjs +823 -594
  18. package/fesm2022/acorex-platform-layout-entity.mjs.map +1 -1
  19. package/fesm2022/acorex-platform-layout-views.mjs +845 -218
  20. package/fesm2022/acorex-platform-layout-views.mjs.map +1 -1
  21. package/fesm2022/acorex-platform-layout-widget-core.mjs +122 -33
  22. package/fesm2022/acorex-platform-layout-widget-core.mjs.map +1 -1
  23. package/fesm2022/{acorex-platform-layout-widgets-tabular-data-edit-popup.component-BcpRkpJp.mjs → acorex-platform-layout-widgets-tabular-data-edit-popup.component-DjpZU6gz.mjs} +2 -2
  24. package/fesm2022/{acorex-platform-layout-widgets-tabular-data-edit-popup.component-BcpRkpJp.mjs.map → acorex-platform-layout-widgets-tabular-data-edit-popup.component-DjpZU6gz.mjs.map} +1 -1
  25. package/fesm2022/{acorex-platform-layout-widgets-tabular-data-view-popup.component-DQtK4lxl.mjs → acorex-platform-layout-widgets-tabular-data-view-popup.component-gX-3Kx9I.mjs} +2 -2
  26. package/fesm2022/{acorex-platform-layout-widgets-tabular-data-view-popup.component-DQtK4lxl.mjs.map → acorex-platform-layout-widgets-tabular-data-view-popup.component-gX-3Kx9I.mjs.map} +1 -1
  27. package/fesm2022/acorex-platform-layout-widgets.mjs +312 -676
  28. package/fesm2022/acorex-platform-layout-widgets.mjs.map +1 -1
  29. package/fesm2022/acorex-platform-themes-default-error-401.component-B1nsdpTY.mjs +48 -0
  30. package/fesm2022/acorex-platform-themes-default-error-401.component-B1nsdpTY.mjs.map +1 -0
  31. package/fesm2022/acorex-platform-themes-default-error-404.component-D4UvRe8u.mjs +42 -0
  32. package/fesm2022/acorex-platform-themes-default-error-404.component-D4UvRe8u.mjs.map +1 -0
  33. package/fesm2022/acorex-platform-themes-default.mjs +89 -46
  34. package/fesm2022/acorex-platform-themes-default.mjs.map +1 -1
  35. package/fesm2022/acorex-platform-themes-shared.mjs +50 -30
  36. package/fesm2022/acorex-platform-themes-shared.mjs.map +1 -1
  37. package/package.json +1 -1
  38. package/types/acorex-platform-auth.d.ts +2 -0
  39. package/types/acorex-platform-common.d.ts +899 -256
  40. package/types/acorex-platform-core.d.ts +394 -60
  41. package/types/acorex-platform-layout-builder.d.ts +78 -13
  42. package/types/acorex-platform-layout-components.d.ts +30 -24
  43. package/types/acorex-platform-layout-entity.d.ts +93 -44
  44. package/types/acorex-platform-layout-views.d.ts +162 -42
  45. package/types/acorex-platform-layout-widget-core.d.ts +60 -33
  46. package/types/acorex-platform-layout-widgets.d.ts +48 -20
  47. package/types/acorex-platform-themes-default.d.ts +38 -8
  48. package/types/acorex-platform-themes-shared.d.ts +6 -0
  49. package/types/acorex-platform-workflow.d.ts +1 -1
  50. package/fesm2022/acorex-platform-common-common-settings.provider-Bi1RYif5.mjs.map +0 -1
  51. package/fesm2022/acorex-platform-layout-entity-attachments-page.component-D8iQnT-R.mjs.map +0 -1
  52. package/fesm2022/acorex-platform-themes-default-error-401.component-C7EYJzSr.mjs +0 -31
  53. package/fesm2022/acorex-platform-themes-default-error-401.component-C7EYJzSr.mjs.map +0 -1
  54. package/fesm2022/acorex-platform-themes-default-error-404.component-7MVLMwIa.mjs +0 -25
  55. package/fesm2022/acorex-platform-themes-default-error-404.component-7MVLMwIa.mjs.map +0 -1
@@ -46,7 +46,7 @@ type AXPWidgetCoreElementAction = {
46
46
  zone?: 'header' | 'footer';
47
47
  placement?: 'prefix' | 'suffix';
48
48
  scope?: 'primary' | 'secondary';
49
- /** When `command` is not `widget:<name>.<action>`, widget name used to resolve `api` for `hidden` / `disabled` expressions. */
49
+ shortcuts?: string[];
50
50
  predicateApiWidgetName?: string;
51
51
  };
52
52
  declare abstract class AXPWidgetCoreElement {
@@ -65,6 +65,8 @@ declare class AXPWidgetCoreService {
65
65
  readonly status: Signal<AXPPageStatus>;
66
66
  readonly isBusy: Signal<boolean>;
67
67
  registeredWidgetsCount: _angular_core.WritableSignal<number>;
68
+ private readonly dirtyWidgetsRevision;
69
+ readonly dirtyWidgetsRevisionSignal: Signal<number>;
68
70
  get variables(): any;
69
71
  get functions(): {
70
72
  [key: string]: Function;
@@ -79,16 +81,9 @@ declare class AXPWidgetCoreService {
79
81
  setFunctions(key: string, value: any): void;
80
82
  registerWidget(id: string, widget: AXPWidgetCoreElement): void;
81
83
  getWidget(id: string): AXPWidgetCoreElement | undefined;
82
- /**
83
- * Waits until a widget with the given id is registered, then resolves with it.
84
- * If the widget is already registered, resolves immediately.
85
- * Optionally accepts a timeout (in ms) after which it resolves with undefined.
86
- */
87
84
  waitForWidget(id: string, timeoutMs?: number): Promise<AXPWidgetCoreElement | undefined>;
88
- /**
89
- * Returns a list of registered widget ids (names).
90
- */
91
85
  listRegisteredWidgetNames(): string[];
86
+ notifyWidgetDirtyChanged(): void;
92
87
  ngOnDestroy(): void;
93
88
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXPWidgetCoreService, never>;
94
89
  static ɵprov: _angular_core.ɵɵInjectableDeclaration<AXPWidgetCoreService>;
@@ -394,29 +389,36 @@ declare abstract class AXPBaseWidgetComponent<TOptions extends Record<string, un
394
389
  protected readonly contextService: {
395
390
  data: _angular_core.Signal<_acorex_platform_core.AXPContextData>;
396
391
  state: _angular_core.Signal<_acorex_platform_core.AXPContextState>;
397
- initialSnapshot: _angular_core.Signal<{}>;
398
- previousSnapshot: _angular_core.Signal<{}>;
392
+ savedSnapshot: _angular_core.Signal<_acorex_platform_core.AXPContextData>;
393
+ previousSnapshot: _angular_core.Signal<_acorex_platform_core.AXPContextData>;
399
394
  lastChange: _ngrx_signals.DeepSignal<_acorex_platform_core.AXPContextChangeEvent>;
400
395
  isChanged: _angular_core.Signal<boolean>;
401
396
  isReset: _angular_core.Signal<boolean>;
402
397
  isInitiated: _angular_core.Signal<boolean>;
403
398
  isEmpty: _angular_core.Signal<boolean>;
399
+ isSavedCommitted: _angular_core.Signal<boolean>;
404
400
  isDirty: _angular_core.Signal<boolean>;
405
401
  snapshot: _angular_core.Signal<_acorex_platform_core.AXPContextData>;
406
- initial: _angular_core.Signal<{}>;
407
- previous: _angular_core.Signal<{}>;
402
+ saved: _angular_core.Signal<_acorex_platform_core.AXPContextData>;
403
+ initial: _angular_core.Signal<_acorex_platform_core.AXPContextData>;
404
+ previous: _angular_core.Signal<_acorex_platform_core.AXPContextData>;
408
405
  changeEvent: _angular_core.Signal<_acorex_platform_core.AXPContextChangeEvent>;
409
- update: (path: string, value: any) => void;
410
- patch: (context: Record<string, any>, skipDirtyTracking?: boolean) => void;
406
+ update: (path: string, value: any, options?: _acorex_platform_core.AXPContextUpdateOptions) => void;
407
+ applyObjectPaths: (obj: Record<string, unknown>, options?: _acorex_platform_core.AXPContextUpdateOptions, prefix?: string) => void;
408
+ patch: (context: Record<string, any>, options?: _acorex_platform_core.AXPContextPatchOptions) => void;
409
+ revertToSaved: () => void;
411
410
  reset: () => void;
412
411
  set: (initialData: any) => void;
413
412
  getValue: (path: string) => any;
413
+ getSavedValue: (path: string) => any;
414
414
  hasValue: (path: string) => boolean;
415
+ commitSaved: () => void;
416
+ applyParentBind: (merged: _acorex_platform_core.AXPContextData) => void;
415
417
  } & _ngrx_signals.StateSource<{
416
418
  data: _acorex_platform_core.AXPContextData;
417
419
  state: _acorex_platform_core.AXPContextState;
418
- initialSnapshot: {};
419
- previousSnapshot: {};
420
+ savedSnapshot: _acorex_platform_core.AXPContextData;
421
+ previousSnapshot: _acorex_platform_core.AXPContextData;
420
422
  lastChange: _acorex_platform_core.AXPContextChangeEvent;
421
423
  }>;
422
424
  readonly config: _acorex_platform_layout_widget_core.AXPWidgetConfig<any>;
@@ -775,40 +777,57 @@ declare class AXPWidgetContainerComponent {
775
777
  readonly contextService: {
776
778
  data: _angular_core.Signal<_acorex_platform_core.AXPContextData>;
777
779
  state: _angular_core.Signal<_acorex_platform_core.AXPContextState>;
778
- initialSnapshot: _angular_core.Signal<{}>;
779
- previousSnapshot: _angular_core.Signal<{}>;
780
+ savedSnapshot: _angular_core.Signal<_acorex_platform_core.AXPContextData>;
781
+ previousSnapshot: _angular_core.Signal<_acorex_platform_core.AXPContextData>;
780
782
  lastChange: _ngrx_signals.DeepSignal<AXPContextChangeEvent>;
781
783
  isChanged: _angular_core.Signal<boolean>;
782
784
  isReset: _angular_core.Signal<boolean>;
783
785
  isInitiated: _angular_core.Signal<boolean>;
784
786
  isEmpty: _angular_core.Signal<boolean>;
787
+ isSavedCommitted: _angular_core.Signal<boolean>;
785
788
  isDirty: _angular_core.Signal<boolean>;
786
789
  snapshot: _angular_core.Signal<_acorex_platform_core.AXPContextData>;
787
- initial: _angular_core.Signal<{}>;
788
- previous: _angular_core.Signal<{}>;
790
+ saved: _angular_core.Signal<_acorex_platform_core.AXPContextData>;
791
+ initial: _angular_core.Signal<_acorex_platform_core.AXPContextData>;
792
+ previous: _angular_core.Signal<_acorex_platform_core.AXPContextData>;
789
793
  changeEvent: _angular_core.Signal<AXPContextChangeEvent>;
790
- update: (path: string, value: any) => void;
791
- patch: (context: Record<string, any>, skipDirtyTracking?: boolean) => void;
794
+ update: (path: string, value: any, options?: _acorex_platform_core.AXPContextUpdateOptions) => void;
795
+ applyObjectPaths: (obj: Record<string, unknown>, options?: _acorex_platform_core.AXPContextUpdateOptions, prefix?: string) => void;
796
+ patch: (context: Record<string, any>, options?: _acorex_platform_core.AXPContextPatchOptions) => void;
797
+ revertToSaved: () => void;
792
798
  reset: () => void;
793
799
  set: (initialData: any) => void;
794
800
  getValue: (path: string) => any;
801
+ getSavedValue: (path: string) => any;
795
802
  hasValue: (path: string) => boolean;
803
+ commitSaved: () => void;
804
+ applyParentBind: (merged: _acorex_platform_core.AXPContextData) => void;
796
805
  } & _ngrx_signals.StateSource<{
797
806
  data: _acorex_platform_core.AXPContextData;
798
807
  state: _acorex_platform_core.AXPContextState;
799
- initialSnapshot: {};
800
- previousSnapshot: {};
808
+ savedSnapshot: _acorex_platform_core.AXPContextData;
809
+ previousSnapshot: _acorex_platform_core.AXPContextData;
801
810
  lastChange: AXPContextChangeEvent;
802
811
  }>;
803
812
  readonly builderService: AXPWidgetCoreService;
804
813
  readonly onContextChanged: EventEmitter<AXPContextChangeEvent>;
814
+ private lastEmittedFormDirty;
815
+ private savedBaselineTimer?;
805
816
  set context(value: any);
806
817
  set functions(v: any);
818
+ readonly isSavedCommitted: _angular_core.Signal<boolean>;
819
+ readonly isFormDirty: _angular_core.Signal<boolean>;
807
820
  constructor();
808
821
  status: _angular_core.Signal<_acorex_platform_layout_widget_core.AXPPageStatus>;
809
822
  isBusy: _angular_core.Signal<boolean>;
810
823
  refresh(): void;
811
824
  find(name: string): Promise<_acorex_platform_layout_widget_core.AXPWidgetCoreElement | undefined>;
825
+ private syncExternalContext;
826
+ /** Commits the current data as saved after widget hydration settles. */
827
+ settleSavedBaseline(): Promise<void>;
828
+ replaceContext(value: unknown): Promise<void>;
829
+ revertAndSettle(): void;
830
+ private clearSavedBaselineTimer;
812
831
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXPWidgetContainerComponent, never>;
813
832
  static ɵcmp: _angular_core.ɵɵComponentDeclaration<AXPWidgetContainerComponent, "axp-widgets-container", never, { "context": { "alias": "context"; "required": false; }; "functions": { "alias": "functions"; "required": false; }; }, { "onContextChanged": "onContextChanged"; }, never, ["*"], false, never>;
814
833
  }
@@ -974,29 +993,36 @@ declare class AXPWidgetRendererDirective {
974
993
  protected contextService: {
975
994
  data: _angular_core.Signal<_acorex_platform_core.AXPContextData>;
976
995
  state: _angular_core.Signal<_acorex_platform_core.AXPContextState>;
977
- initialSnapshot: _angular_core.Signal<{}>;
978
- previousSnapshot: _angular_core.Signal<{}>;
996
+ savedSnapshot: _angular_core.Signal<_acorex_platform_core.AXPContextData>;
997
+ previousSnapshot: _angular_core.Signal<_acorex_platform_core.AXPContextData>;
979
998
  lastChange: _ngrx_signals.DeepSignal<_acorex_platform_core.AXPContextChangeEvent>;
980
999
  isChanged: _angular_core.Signal<boolean>;
981
1000
  isReset: _angular_core.Signal<boolean>;
982
1001
  isInitiated: _angular_core.Signal<boolean>;
983
1002
  isEmpty: _angular_core.Signal<boolean>;
1003
+ isSavedCommitted: _angular_core.Signal<boolean>;
984
1004
  isDirty: _angular_core.Signal<boolean>;
985
1005
  snapshot: _angular_core.Signal<_acorex_platform_core.AXPContextData>;
986
- initial: _angular_core.Signal<{}>;
987
- previous: _angular_core.Signal<{}>;
1006
+ saved: _angular_core.Signal<_acorex_platform_core.AXPContextData>;
1007
+ initial: _angular_core.Signal<_acorex_platform_core.AXPContextData>;
1008
+ previous: _angular_core.Signal<_acorex_platform_core.AXPContextData>;
988
1009
  changeEvent: _angular_core.Signal<_acorex_platform_core.AXPContextChangeEvent>;
989
- update: (path: string, value: any) => void;
990
- patch: (context: Record<string, any>, skipDirtyTracking?: boolean) => void;
1010
+ update: (path: string, value: any, options?: _acorex_platform_core.AXPContextUpdateOptions) => void;
1011
+ applyObjectPaths: (obj: Record<string, unknown>, options?: _acorex_platform_core.AXPContextUpdateOptions, prefix?: string) => void;
1012
+ patch: (context: Record<string, any>, options?: _acorex_platform_core.AXPContextPatchOptions) => void;
1013
+ revertToSaved: () => void;
991
1014
  reset: () => void;
992
1015
  set: (initialData: any) => void;
993
1016
  getValue: (path: string) => any;
1017
+ getSavedValue: (path: string) => any;
994
1018
  hasValue: (path: string) => boolean;
1019
+ commitSaved: () => void;
1020
+ applyParentBind: (merged: _acorex_platform_core.AXPContextData) => void;
995
1021
  } & _ngrx_signals.StateSource<{
996
1022
  data: _acorex_platform_core.AXPContextData;
997
1023
  state: _acorex_platform_core.AXPContextState;
998
- initialSnapshot: {};
999
- previousSnapshot: {};
1024
+ savedSnapshot: _acorex_platform_core.AXPContextData;
1025
+ previousSnapshot: _acorex_platform_core.AXPContextData;
1000
1026
  lastChange: _acorex_platform_core.AXPContextChangeEvent;
1001
1027
  }>;
1002
1028
  protected widgetRegistery: AXPWidgetRegistryService;
@@ -1011,6 +1037,7 @@ declare class AXPWidgetRendererDirective {
1011
1037
  private expressionEvaluators;
1012
1038
  private componentRef;
1013
1039
  private renderTimeoutId;
1040
+ private renderGeneration;
1014
1041
  private hasInitialRender;
1015
1042
  private onContextChanged;
1016
1043
  private onLoadEvent;
@@ -986,7 +986,7 @@ interface AXPDateTimeFilterPresetItem {
986
986
  id: string;
987
987
  title: string;
988
988
  }
989
- declare class AXPDateTimeBoxWidgetEditComponent extends AXPValueWidgetComponent<string | string[] | AXPDateTimeFilterValue> implements AfterViewInit {
989
+ declare class AXPDateTimeBoxWidgetEditComponent extends AXPValueWidgetComponent<string | AXPDateTimeFilterValue> implements AfterViewInit {
990
990
  #private;
991
991
  protected validationService: AXValidationService;
992
992
  private settingsService;
@@ -998,7 +998,6 @@ declare class AXPDateTimeBoxWidgetEditComponent extends AXPValueWidgetComponent<
998
998
  protected resolvedPresets: Signal<AXPDateTimeFilterPreset[]>;
999
999
  protected filterOperations: Signal<AXPFilterOperator[] | undefined>;
1000
1000
  protected selectedManualPreset: Signal<AXPDateTimeFilterPreset | undefined>;
1001
- protected multiple: Signal<boolean>;
1002
1001
  protected clearButton: Signal<boolean>;
1003
1002
  protected minValue: Signal<string>;
1004
1003
  protected maxValue: Signal<string>;
@@ -1009,7 +1008,6 @@ declare class AXPDateTimeBoxWidgetEditComponent extends AXPValueWidgetComponent<
1009
1008
  protected format: Signal<"date" | "time" | "datetime">;
1010
1009
  /** Passed to `ax-datetime-box` `[depth]` (`AXCalendarViewType`). */
1011
1010
  protected inputDepth: Signal<AXCalendarViewType | undefined>;
1012
- protected internalValue: Signal<string[]>;
1013
1011
  protected filterValue: Signal<Date | ''>;
1014
1012
  protected filterRangeValue: Signal<{
1015
1013
  from: Date | '';
@@ -1030,9 +1028,7 @@ declare class AXPDateTimeBoxWidgetEditComponent extends AXPValueWidgetComponent<
1030
1028
  protected calendarFormat: WritableSignal<string>;
1031
1029
  constructor();
1032
1030
  ngAfterViewInit(): void;
1033
- protected handleValueChange(e: AXValueChangedEvent, i: number): void;
1034
- protected addItem(): void;
1035
- protected deleteItem(i: number): void;
1031
+ protected handleValueChange(e: AXValueChangedEvent): void;
1036
1032
  protected handlePresetChange(e: AXValueChangedEvent): void;
1037
1033
  protected handleOperationChange(operationType: unknown): void;
1038
1034
  protected handleFilterValueChange(e: AXValueChangedEvent, type: 'from' | 'to' | 'self'): void;
@@ -1134,7 +1130,7 @@ declare class AXPLargeTextWidgetColumnComponent extends AXPColumnWidgetComponent
1134
1130
 
1135
1131
  declare class AXPLargeTextWidgetEditComponent extends AXPValueWidgetComponent<string | Record<string, string> | undefined> {
1136
1132
  protected multiple: _angular_core.Signal<boolean>;
1137
- protected multiLanguage: _angular_core.Signal<boolean>;
1133
+ protected effectiveMultiLanguage: _angular_core.Signal<boolean>;
1138
1134
  protected disabled: _angular_core.Signal<boolean>;
1139
1135
  protected clearButton: _angular_core.Signal<boolean>;
1140
1136
  protected placeholder: _angular_core.Signal<string>;
@@ -1143,7 +1139,6 @@ declare class AXPLargeTextWidgetEditComponent extends AXPValueWidgetComponent<st
1143
1139
  private popupService;
1144
1140
  private translationService;
1145
1141
  private readonly currentLanguage;
1146
- ngOnInit(): void;
1147
1142
  handleValueChange(e: AXValueChangedEvent): void;
1148
1143
  protected openMultiLanguagePopup(): void;
1149
1144
  protected getCurrentText: _angular_core.Signal<string>;
@@ -1539,14 +1534,13 @@ declare class AXPRichTextWidgetEditComponent extends AXPValueWidgetComponent<str
1539
1534
  protected placeholder: _angular_core.Signal<string>;
1540
1535
  protected disabled: _angular_core.Signal<boolean>;
1541
1536
  protected readonly: _angular_core.Signal<boolean>;
1542
- protected multiLanguage: _angular_core.Signal<boolean>;
1537
+ protected effectiveMultiLanguage: _angular_core.Signal<boolean>;
1543
1538
  protected minLineCount: _angular_core.Signal<number>;
1544
1539
  protected maxLineCount: _angular_core.Signal<number>;
1545
1540
  protected onWysiwygChanged(e: AXValueChangedEvent<string>): void;
1546
1541
  private popupService;
1547
1542
  private translationService;
1548
1543
  currentLanguage: _angular_core.Signal<string>;
1549
- ngOnInit(): void;
1550
1544
  protected getCurrentText: _angular_core.Signal<string>;
1551
1545
  protected openMultiLanguagePopup(): Promise<void>;
1552
1546
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXPRichTextWidgetEditComponent, never>;
@@ -1616,11 +1610,14 @@ interface AXPRichTextWidgetOptions {
1616
1610
  }
1617
1611
 
1618
1612
  declare class AXPSelectBoxWidgetColumnComponent extends AXPColumnWidgetComponent<any> {
1619
- protected valueField: string;
1620
- protected textField: string;
1621
- protected badgeClass: string;
1622
- protected dataSource: any[];
1623
- protected internalValue: _angular_core.Signal<any[]>;
1613
+ protected textField: _angular_core.Signal<string>;
1614
+ protected valueField: _angular_core.Signal<string>;
1615
+ protected cssClassField: _angular_core.Signal<string | undefined>;
1616
+ protected badgeClass: _angular_core.Signal<string | undefined>;
1617
+ protected dataSource: _angular_core.Signal<unknown[]>;
1618
+ protected resolveBadgeClasses(item: unknown): string;
1619
+ protected getItemLabel(item: unknown): string | Record<string, string>;
1620
+ protected internalValue: _angular_core.Signal<Record<string, unknown>[]>;
1624
1621
  private extractItem;
1625
1622
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXPSelectBoxWidgetColumnComponent, never>;
1626
1623
  static ɵcmp: _angular_core.ɵɵComponentDeclaration<AXPSelectBoxWidgetColumnComponent, "axp-select-box-widget-column", never, { "rawValue": { "alias": "rawValue"; "required": false; }; "rowData": { "alias": "rowData"; "required": false; }; }, {}, never, never, true, never>;
@@ -1656,7 +1653,6 @@ declare class AXPSelectBoxWidgetEditComponent extends AXPDataListWidgetComponent
1656
1653
  private lastDataSource;
1657
1654
  private hasSeenDataSource;
1658
1655
  private shouldFocus;
1659
- eff: _angular_core.EffectRef;
1660
1656
  focus(): void;
1661
1657
  protected outputs(): (string | {
1662
1658
  name: string;
@@ -1682,7 +1678,10 @@ declare class AXPSelectBoxWidgetEditComponent extends AXPDataListWidgetComponent
1682
1678
  }
1683
1679
 
1684
1680
  declare class AXPSelectBoxWidgetViewComponent extends AXPDataListWidgetComponent {
1685
- private get __class();
1681
+ protected cssClassField: _angular_core.Signal<string | undefined>;
1682
+ protected badgeClass: _angular_core.Signal<string | undefined>;
1683
+ protected resolveBadgeClasses(item: unknown): string;
1684
+ protected getItemLabel(item: unknown): string | Record<string, string>;
1686
1685
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXPSelectBoxWidgetViewComponent, never>;
1687
1686
  static ɵcmp: _angular_core.ɵɵComponentDeclaration<AXPSelectBoxWidgetViewComponent, "axp-select-box-widget-view", never, {}, {}, never, never, true, never>;
1688
1687
  }
@@ -1765,8 +1764,11 @@ declare class AXPSelectionListWidgetEditComponent extends AXPDataListWidgetCompo
1765
1764
  protected look: _angular_core.Signal<AXSelectionListLook>;
1766
1765
  protected showControl: _angular_core.Signal<boolean>;
1767
1766
  protected imageMode: _angular_core.Signal<boolean>;
1767
+ protected imageField: _angular_core.Signal<string>;
1768
1768
  protected displayItems: _angular_core.WritableSignal<any[]>;
1769
1769
  private ef;
1770
+ protected resolveItemImage(item: unknown): string;
1771
+ protected resolveItemAlt(item: unknown): string;
1770
1772
  protected handleValueChange(e: AXValueChangedEvent): void;
1771
1773
  private get __class();
1772
1774
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXPSelectionListWidgetEditComponent, never>;
@@ -1775,6 +1777,8 @@ declare class AXPSelectionListWidgetEditComponent extends AXPDataListWidgetCompo
1775
1777
 
1776
1778
  declare class AXPSelectionListWidgetViewComponent extends AXPDataListWidgetComponent {
1777
1779
  protected imageMode: _angular_core.Signal<boolean>;
1780
+ protected imageField: _angular_core.Signal<string>;
1781
+ protected resolveItemImage(item: Record<string, unknown>): string;
1778
1782
  private get __class();
1779
1783
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXPSelectionListWidgetViewComponent, never>;
1780
1784
  static ɵcmp: _angular_core.ɵɵComponentDeclaration<AXPSelectionListWidgetViewComponent, "axp-selection-list-widget-view", never, {}, {}, never, never, true, never>;
@@ -1806,6 +1810,8 @@ interface AXPSelectionListWidgetEditOptions {
1806
1810
  look?: AXSelectionListLook;
1807
1811
  showControl?: boolean;
1808
1812
  imageMode?: boolean;
1813
+ /** Image URL field when `imageMode` is true; defaults to `textField`. */
1814
+ imageField?: string;
1809
1815
  }
1810
1816
  interface AXPSelectionListWidgetColumnOptions {
1811
1817
  valueField?: any;
@@ -1980,7 +1986,7 @@ declare class AXPTextBoxWidgetColumnComponent extends AXPColumnWidgetComponent<s
1980
1986
  declare class AXPTextBoxWidgetEditComponent extends AXPValueWidgetComponent<string | Record<string, string> | undefined> {
1981
1987
  private popupService;
1982
1988
  private translationService;
1983
- protected multiLanguage: _angular_core.Signal<boolean>;
1989
+ protected effectiveMultiLanguage: _angular_core.Signal<boolean>;
1984
1990
  protected hasClearButton: _angular_core.Signal<boolean>;
1985
1991
  protected disabled: _angular_core.Signal<boolean>;
1986
1992
  protected readonly: _angular_core.Signal<boolean>;
@@ -2889,13 +2895,31 @@ declare class AXPSignatureWidgetColumnComponent extends AXPColumnWidgetComponent
2889
2895
  declare class AXPSignatureWidgetEditComponent extends AXPValueWidgetComponent<string | null> {
2890
2896
  #private;
2891
2897
  protected disabled: _angular_core.Signal<boolean>;
2892
- /** When true (default), show click overlay and use read-only paint; when false (e.g. inside dialog), no overlay and paint is editable. */
2898
+ /** When true (default), show click-to-edit overlay over read-only paint. Set false when used inside a dialog. */
2893
2899
  protected showOverlay: _angular_core.Signal<boolean>;
2894
- /** Edit mode: true when inside dialog (no overlay), false when outside (read-only preview with overlay). */
2900
+ /** Paint editMode: true hides pen/highlighter/eraser toolbars. */
2895
2901
  protected editMode: _angular_core.Signal<boolean>;
2902
+ protected hasSignature: _angular_core.Signal<boolean>;
2903
+ protected showSignaturePreview: _angular_core.Signal<boolean>;
2904
+ protected showPaintSurface: _angular_core.Signal<boolean>;
2905
+ protected isInteracting: _angular_core.WritableSignal<boolean>;
2906
+ protected showEmptyHint: _angular_core.Signal<boolean>;
2907
+ protected showDialogHint: _angular_core.Signal<boolean>;
2908
+ protected showDesktopHover: _angular_core.Signal<boolean>;
2909
+ protected hovering: _angular_core.WritableSignal<boolean>;
2910
+ protected emptyHint: _angular_core.Signal<string>;
2911
+ protected signHereHint: _angular_core.Signal<string>;
2896
2912
  protected paintContainer: _angular_core.Signal<AXPaintContainerComponent | undefined>;
2897
2913
  protected paintView: _angular_core.Signal<AXPaintViewComponent | undefined>;
2898
2914
  private readonly layoutBuilder;
2915
+ private readonly deviceService;
2916
+ api(): AXPWidgetCoreElementAPI;
2917
+ protected clearSignaturePad(): void;
2918
+ protected handleMouseEnter(): void;
2919
+ protected handleMouseLeave(): void;
2920
+ protected handleSurfaceClick(event: MouseEvent): void;
2921
+ protected handleOverlayClick(event: MouseEvent): void;
2922
+ protected handleSurfacePointerDown(event: PointerEvent): void;
2899
2923
  protected openEditor(): Promise<void>;
2900
2924
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXPSignatureWidgetEditComponent, never>;
2901
2925
  static ɵcmp: _angular_core.ɵɵComponentDeclaration<AXPSignatureWidgetEditComponent, "axp-signature-pad-widget-edit", never, {}, {}, never, never, true, never>;
@@ -3236,11 +3260,14 @@ declare class AXPItemConfiguratorWidgetEditComponent extends AXPValueWidgetCompo
3236
3260
  protected recordPropertyDefinitionsField: _angular_core.Signal<string | null>;
3237
3261
  protected headerActions: _angular_core.Signal<AXPActionMenuItem[]>;
3238
3262
  protected isInitialized: _angular_core.WritableSignal<boolean>;
3263
+ /** True while syncing models from shared context (discard/load); writes use system origin. */
3264
+ private readonly hydratingFromContext;
3239
3265
  protected selectedItemIdModel: _angular_core.ModelSignal<string>;
3240
3266
  protected valuesModel: _angular_core.ModelSignal<Record<string, unknown>>;
3241
3267
  private loadNamedDataSourceEffect;
3242
3268
  private syncValueToConfigurator;
3243
3269
  private syncConfiguratorToValue;
3270
+ private buildWidgetNode;
3244
3271
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXPItemConfiguratorWidgetEditComponent, never>;
3245
3272
  static ɵcmp: _angular_core.ɵɵComponentDeclaration<AXPItemConfiguratorWidgetEditComponent, "axp-item-configurator-widget-edit", never, { "selectedItemIdModel": { "alias": "selectedItemIdModel"; "required": false; "isSignal": true; }; "valuesModel": { "alias": "valuesModel"; "required": false; "isSignal": true; }; }, { "selectedItemIdModel": "selectedItemIdModelChange"; "valuesModel": "valuesModelChange"; }, never, never, true, never>;
3246
3273
  }
@@ -4901,6 +4928,7 @@ declare class AXPGridItemOptionsWidgetEditComponent extends AXPValueWidgetCompon
4901
4928
 
4902
4929
  declare class AXPSpacingWidgetEditComponent extends AXPValueWidgetComponent<AXPSpacingBoxString> {
4903
4930
  private ngZone;
4931
+ protected readonly toggleShortcutKeys: string[];
4904
4932
  private isDragging;
4905
4933
  protected calculatedValues: _angular_core.WritableSignal<AXPSpacingBox<number>>;
4906
4934
  protected originalValues: _angular_core.WritableSignal<AXPSpacingBox<number>>;
@@ -35,6 +35,7 @@ declare class AXPEntityDetailListViewComponent {
35
35
  overlayLoadingTaskCount: _angular_core.Signal<number>;
36
36
  navigationLoadingTaskCount: _angular_core.Signal<number>;
37
37
  sideMenuState: _angular_core.Signal<_acorex_platform_themes_shared.AXPSideMenuState>;
38
+ overlaySideMenuOpen: _angular_core.Signal<boolean>;
38
39
  sideMenuWidth: _angular_core.Signal<number>;
39
40
  sideMenuCompactWidth: _angular_core.Signal<number>;
40
41
  menuVerticalMode: _angular_core.Signal<_acorex_platform_themes_shared.AXPMenuVerticalMode>;
@@ -47,6 +48,7 @@ declare class AXPEntityDetailListViewComponent {
47
48
  isOverlayLoading: _angular_core.Signal<boolean>;
48
49
  isNavigationLoading: _angular_core.Signal<boolean>;
49
50
  isMenuHorizontal: _angular_core.Signal<boolean>;
51
+ effectiveMenuVerticalMode: _angular_core.Signal<_acorex_platform_themes_shared.AXPMenuVerticalMode>;
50
52
  sideMenuDrawerWidth: _angular_core.Signal<number>;
51
53
  changeThemeMode: (theme: _acorex_platform_themes_shared.AXPThemeMode) => void;
52
54
  openSideMenu: () => void;
@@ -71,6 +73,7 @@ declare class AXPEntityDetailListViewComponent {
71
73
  overlayLoadingTaskCount: number;
72
74
  navigationLoadingTaskCount: number;
73
75
  sideMenuState: _acorex_platform_themes_shared.AXPSideMenuState;
76
+ overlaySideMenuOpen: boolean;
74
77
  sideMenuWidth: number;
75
78
  sideMenuCompactWidth: number;
76
79
  menuVerticalMode: _acorex_platform_themes_shared.AXPMenuVerticalMode;
@@ -143,6 +146,7 @@ declare class AXPEntityMasterListViewComponent extends AXPPageLayoutBaseComponen
143
146
  overlayLoadingTaskCount: _angular_core.Signal<number>;
144
147
  navigationLoadingTaskCount: _angular_core.Signal<number>;
145
148
  sideMenuState: _angular_core.Signal<_acorex_platform_themes_shared.AXPSideMenuState>;
149
+ overlaySideMenuOpen: _angular_core.Signal<boolean>;
146
150
  sideMenuWidth: _angular_core.Signal<number>;
147
151
  sideMenuCompactWidth: _angular_core.Signal<number>;
148
152
  menuVerticalMode: _angular_core.Signal<_acorex_platform_themes_shared.AXPMenuVerticalMode>;
@@ -155,6 +159,7 @@ declare class AXPEntityMasterListViewComponent extends AXPPageLayoutBaseComponen
155
159
  isOverlayLoading: _angular_core.Signal<boolean>;
156
160
  isNavigationLoading: _angular_core.Signal<boolean>;
157
161
  isMenuHorizontal: _angular_core.Signal<boolean>;
162
+ effectiveMenuVerticalMode: _angular_core.Signal<_acorex_platform_themes_shared.AXPMenuVerticalMode>;
158
163
  sideMenuDrawerWidth: _angular_core.Signal<number>;
159
164
  changeThemeMode: (theme: _acorex_platform_themes_shared.AXPThemeMode) => void;
160
165
  openSideMenu: () => void;
@@ -179,6 +184,7 @@ declare class AXPEntityMasterListViewComponent extends AXPPageLayoutBaseComponen
179
184
  overlayLoadingTaskCount: number;
180
185
  navigationLoadingTaskCount: number;
181
186
  sideMenuState: _acorex_platform_themes_shared.AXPSideMenuState;
187
+ overlaySideMenuOpen: boolean;
182
188
  sideMenuWidth: number;
183
189
  sideMenuCompactWidth: number;
184
190
  menuVerticalMode: _acorex_platform_themes_shared.AXPMenuVerticalMode;
@@ -195,6 +201,8 @@ declare class AXPEntityMasterListViewComponent extends AXPPageLayoutBaseComponen
195
201
  private readonly componentDestroyed;
196
202
  private isRestoringExpandedRows;
197
203
  private restoreExpandedRowsScheduled;
204
+ /** Blocks deferred `replaceUrl` view sync after destroy or once details navigation has started. */
205
+ private listQueryParamSyncDisabled;
198
206
  constructor(platform: AXPlatform);
199
207
  ngOnInit(): Promise<void>;
200
208
  ngAfterViewInit(): Promise<void>;
@@ -213,6 +221,11 @@ declare class AXPEntityMasterListViewComponent extends AXPPageLayoutBaseComponen
213
221
  getPrimaryMenuItems(): Promise<AXPActionMenuItem[]>;
214
222
  getSecondaryMenuItems(): Promise<AXPActionMenuItem[]>;
215
223
  execute(command: AXPExecuteCommand): Promise<void>;
224
+ /**
225
+ * Syncs the list `view` query param without polluting history.
226
+ * Re-checks the live URL so a deferred call cannot `replaceUrl` over a details entry.
227
+ */
228
+ private syncListViewQueryParam;
216
229
  private reloadListData;
217
230
  private grid;
218
231
  private updateParentHasChildAfterRefresh;
@@ -232,8 +245,11 @@ declare class AXPRootLayoutFooterComponent {
232
245
  }
233
246
 
234
247
  declare class AXPRootLayoutHeaderComponent {
235
- private config;
236
- protected store: {
248
+ private readonly config;
249
+ private readonly router;
250
+ private readonly destroyRef;
251
+ private readonly shortcutRegistry;
252
+ protected readonly store: {
237
253
  currentMode: _angular_core.Signal<_acorex_platform_themes_shared.AXPThemeMode>;
238
254
  currentPalette: _angular_core.Signal<string>;
239
255
  systemThemeMode: _angular_core.Signal<_acorex_platform_themes_shared.AXPThemeMode>;
@@ -246,6 +262,7 @@ declare class AXPRootLayoutHeaderComponent {
246
262
  overlayLoadingTaskCount: _angular_core.Signal<number>;
247
263
  navigationLoadingTaskCount: _angular_core.Signal<number>;
248
264
  sideMenuState: _angular_core.Signal<_acorex_platform_themes_shared.AXPSideMenuState>;
265
+ overlaySideMenuOpen: _angular_core.Signal<boolean>;
249
266
  sideMenuWidth: _angular_core.Signal<number>;
250
267
  sideMenuCompactWidth: _angular_core.Signal<number>;
251
268
  menuVerticalMode: _angular_core.Signal<_acorex_platform_themes_shared.AXPMenuVerticalMode>;
@@ -258,6 +275,7 @@ declare class AXPRootLayoutHeaderComponent {
258
275
  isOverlayLoading: _angular_core.Signal<boolean>;
259
276
  isNavigationLoading: _angular_core.Signal<boolean>;
260
277
  isMenuHorizontal: _angular_core.Signal<boolean>;
278
+ effectiveMenuVerticalMode: _angular_core.Signal<_acorex_platform_themes_shared.AXPMenuVerticalMode>;
261
279
  sideMenuDrawerWidth: _angular_core.Signal<number>;
262
280
  changeThemeMode: (theme: _acorex_platform_themes_shared.AXPThemeMode) => void;
263
281
  openSideMenu: () => void;
@@ -282,14 +300,14 @@ declare class AXPRootLayoutHeaderComponent {
282
300
  overlayLoadingTaskCount: number;
283
301
  navigationLoadingTaskCount: number;
284
302
  sideMenuState: _acorex_platform_themes_shared.AXPSideMenuState;
303
+ overlaySideMenuOpen: boolean;
285
304
  sideMenuWidth: number;
286
305
  sideMenuCompactWidth: number;
287
306
  menuVerticalMode: _acorex_platform_themes_shared.AXPMenuVerticalMode;
288
307
  menuOrientation: _acorex_platform_themes_shared.AXPMenuOrientation;
289
308
  isPrinting: boolean;
290
309
  }>;
291
- private router;
292
- protected logo: {
310
+ protected readonly logo: {
293
311
  icon: {
294
312
  light: _acorex_platform_core.AXPLogoConfig;
295
313
  dark: _acorex_platform_core.AXPLogoConfig;
@@ -303,6 +321,7 @@ declare class AXPRootLayoutHeaderComponent {
303
321
  dark: _acorex_platform_core.AXPLogoConfig;
304
322
  };
305
323
  } | undefined;
324
+ constructor();
306
325
  protected toggleSideMenu(): void;
307
326
  protected handleLogoClick(): void;
308
327
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXPRootLayoutHeaderComponent, never>;
@@ -344,6 +363,7 @@ declare class AXPRootLayoutMenuComponent {
344
363
  overlayLoadingTaskCount: Signal<number>;
345
364
  navigationLoadingTaskCount: Signal<number>;
346
365
  sideMenuState: Signal<_acorex_platform_themes_shared.AXPSideMenuState>;
366
+ overlaySideMenuOpen: Signal<boolean>;
347
367
  sideMenuWidth: Signal<number>;
348
368
  sideMenuCompactWidth: Signal<number>;
349
369
  menuVerticalMode: Signal<_acorex_platform_themes_shared.AXPMenuVerticalMode>;
@@ -356,6 +376,7 @@ declare class AXPRootLayoutMenuComponent {
356
376
  isOverlayLoading: Signal<boolean>;
357
377
  isNavigationLoading: Signal<boolean>;
358
378
  isMenuHorizontal: Signal<boolean>;
379
+ effectiveMenuVerticalMode: Signal<_acorex_platform_themes_shared.AXPMenuVerticalMode>;
359
380
  sideMenuDrawerWidth: Signal<number>;
360
381
  changeThemeMode: (theme: _acorex_platform_themes_shared.AXPThemeMode) => void;
361
382
  openSideMenu: () => void;
@@ -380,6 +401,7 @@ declare class AXPRootLayoutMenuComponent {
380
401
  overlayLoadingTaskCount: number;
381
402
  navigationLoadingTaskCount: number;
382
403
  sideMenuState: _acorex_platform_themes_shared.AXPSideMenuState;
404
+ overlaySideMenuOpen: boolean;
383
405
  sideMenuWidth: number;
384
406
  sideMenuCompactWidth: number;
385
407
  menuVerticalMode: _acorex_platform_themes_shared.AXPMenuVerticalMode;
@@ -387,8 +409,7 @@ declare class AXPRootLayoutMenuComponent {
387
409
  isPrinting: boolean;
388
410
  }>;
389
411
  protected badgeVisible: _angular_core.WritableSignal<boolean>;
390
- protected menuMode: Signal<_acorex_platform_themes_shared.AXPMenuVerticalMode>;
391
- constructor();
412
+ protected readonly menuMode: Signal<_acorex_platform_themes_shared.AXPMenuVerticalMode>;
392
413
  ngOnInit(): Promise<void>;
393
414
  onMenuItemClick(item: AXPMenuItem, hasRouterLink?: boolean): void;
394
415
  protected sort(items: AXPMenuItem[]): AXPMenuItem[];
@@ -471,6 +492,7 @@ declare class AXPRootHorizontalLayoutComponent {
471
492
  overlayLoadingTaskCount: _angular_core.Signal<number>;
472
493
  navigationLoadingTaskCount: _angular_core.Signal<number>;
473
494
  sideMenuState: _angular_core.Signal<_acorex_platform_themes_shared.AXPSideMenuState>;
495
+ overlaySideMenuOpen: _angular_core.Signal<boolean>;
474
496
  sideMenuWidth: _angular_core.Signal<number>;
475
497
  sideMenuCompactWidth: _angular_core.Signal<number>;
476
498
  menuVerticalMode: _angular_core.Signal<_acorex_platform_themes_shared.AXPMenuVerticalMode>;
@@ -483,6 +505,7 @@ declare class AXPRootHorizontalLayoutComponent {
483
505
  isOverlayLoading: _angular_core.Signal<boolean>;
484
506
  isNavigationLoading: _angular_core.Signal<boolean>;
485
507
  isMenuHorizontal: _angular_core.Signal<boolean>;
508
+ effectiveMenuVerticalMode: _angular_core.Signal<_acorex_platform_themes_shared.AXPMenuVerticalMode>;
486
509
  sideMenuDrawerWidth: _angular_core.Signal<number>;
487
510
  changeThemeMode: (theme: _acorex_platform_themes_shared.AXPThemeMode) => void;
488
511
  openSideMenu: () => void;
@@ -507,6 +530,7 @@ declare class AXPRootHorizontalLayoutComponent {
507
530
  overlayLoadingTaskCount: number;
508
531
  navigationLoadingTaskCount: number;
509
532
  sideMenuState: _acorex_platform_themes_shared.AXPSideMenuState;
533
+ overlaySideMenuOpen: boolean;
510
534
  sideMenuWidth: number;
511
535
  sideMenuCompactWidth: number;
512
536
  menuVerticalMode: _acorex_platform_themes_shared.AXPMenuVerticalMode;
@@ -548,6 +572,7 @@ declare class AXPRootVerticalLayoutComponent {
548
572
  overlayLoadingTaskCount: _angular_core.Signal<number>;
549
573
  navigationLoadingTaskCount: _angular_core.Signal<number>;
550
574
  sideMenuState: _angular_core.Signal<_acorex_platform_themes_shared.AXPSideMenuState>;
575
+ overlaySideMenuOpen: _angular_core.Signal<boolean>;
551
576
  sideMenuWidth: _angular_core.Signal<number>;
552
577
  sideMenuCompactWidth: _angular_core.Signal<number>;
553
578
  menuVerticalMode: _angular_core.Signal<_acorex_platform_themes_shared.AXPMenuVerticalMode>;
@@ -560,6 +585,7 @@ declare class AXPRootVerticalLayoutComponent {
560
585
  isOverlayLoading: _angular_core.Signal<boolean>;
561
586
  isNavigationLoading: _angular_core.Signal<boolean>;
562
587
  isMenuHorizontal: _angular_core.Signal<boolean>;
588
+ effectiveMenuVerticalMode: _angular_core.Signal<_acorex_platform_themes_shared.AXPMenuVerticalMode>;
563
589
  sideMenuDrawerWidth: _angular_core.Signal<number>;
564
590
  changeThemeMode: (theme: _acorex_platform_themes_shared.AXPThemeMode) => void;
565
591
  openSideMenu: () => void;
@@ -584,6 +610,7 @@ declare class AXPRootVerticalLayoutComponent {
584
610
  overlayLoadingTaskCount: number;
585
611
  navigationLoadingTaskCount: number;
586
612
  sideMenuState: _acorex_platform_themes_shared.AXPSideMenuState;
613
+ overlaySideMenuOpen: boolean;
587
614
  sideMenuWidth: number;
588
615
  sideMenuCompactWidth: number;
589
616
  menuVerticalMode: _acorex_platform_themes_shared.AXPMenuVerticalMode;
@@ -592,8 +619,8 @@ declare class AXPRootVerticalLayoutComponent {
592
619
  }>;
593
620
  protected deviceService: AXPDeviceService;
594
621
  protected router: Router;
595
- /** Drawer width from theme store; null on small/medium viewports (overlay sizing). */
596
- protected readonly sideMenuDrawerWidthPx: _angular_core.Signal<number | null>;
622
+ /** Recreates the drawer when switching overlay push to reset internal layout sizing. */
623
+ protected readonly sideMenuDrawerKey: _angular_core.Signal<"overlay" | "push">;
597
624
  constructor();
598
625
  protected handleResizingEnded(e: AXValueChangedEvent<number>): void;
599
626
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXPRootVerticalLayoutComponent, never>;
@@ -614,6 +641,7 @@ declare class AXPRootLayoutComponent {
614
641
  overlayLoadingTaskCount: _angular_core.Signal<number>;
615
642
  navigationLoadingTaskCount: _angular_core.Signal<number>;
616
643
  sideMenuState: _angular_core.Signal<_acorex_platform_themes_shared.AXPSideMenuState>;
644
+ overlaySideMenuOpen: _angular_core.Signal<boolean>;
617
645
  sideMenuWidth: _angular_core.Signal<number>;
618
646
  sideMenuCompactWidth: _angular_core.Signal<number>;
619
647
  menuVerticalMode: _angular_core.Signal<_acorex_platform_themes_shared.AXPMenuVerticalMode>;
@@ -626,6 +654,7 @@ declare class AXPRootLayoutComponent {
626
654
  isOverlayLoading: _angular_core.Signal<boolean>;
627
655
  isNavigationLoading: _angular_core.Signal<boolean>;
628
656
  isMenuHorizontal: _angular_core.Signal<boolean>;
657
+ effectiveMenuVerticalMode: _angular_core.Signal<_acorex_platform_themes_shared.AXPMenuVerticalMode>;
629
658
  sideMenuDrawerWidth: _angular_core.Signal<number>;
630
659
  changeThemeMode: (theme: _acorex_platform_themes_shared.AXPThemeMode) => void;
631
660
  openSideMenu: () => void;
@@ -650,6 +679,7 @@ declare class AXPRootLayoutComponent {
650
679
  overlayLoadingTaskCount: number;
651
680
  navigationLoadingTaskCount: number;
652
681
  sideMenuState: _acorex_platform_themes_shared.AXPSideMenuState;
682
+ overlaySideMenuOpen: boolean;
653
683
  sideMenuWidth: number;
654
684
  sideMenuCompactWidth: number;
655
685
  menuVerticalMode: _acorex_platform_themes_shared.AXPMenuVerticalMode;