@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
@@ -4,13 +4,25 @@ import * as i1 from '@angular/common';
4
4
  import { AXFormComponent } from '@acorex/components/form';
5
5
  import { AXValidationSummary } from '@acorex/core/validation';
6
6
  import { AXPWidgetNode, AXPWidgetRenderMode, AXPWidgetContainerComponent, AXPWidgetCoreElementAction } from '@acorex/platform/layout/widget-core';
7
- import { AXDataSource } from '@acorex/cdk/common';
7
+ import { AXDataSource, AXComponentClosing } from '@acorex/cdk/common';
8
8
  import { AXPopupSizeType } from '@acorex/components/popup';
9
9
  import { AXStepWizardLook } from '@acorex/components/step-wizard';
10
- import { AXPMetaData, AXPGridLayoutOptions, AXPActionMenuItem, AXPMultiLanguageString, AXPExpression, AXPValidationRules, AXPOptionsData, AXPContextChangeEvent, AXPExecuteCommandResult } from '@acorex/platform/core';
10
+ import { AXPKeyboardShortcut, AXPKeyboardShortcutChord, AXPActionMenuItem, AXPMultiLanguageString, AXPMetaData, AXPGridLayoutOptions, AXPExpression, AXPValidationRules, AXPOptionsData, AXPContextChangeEvent, AXPExecuteCommandResult } from '@acorex/platform/core';
11
11
  import { AXBasePageComponent } from '@acorex/components/page';
12
12
  import { AXPCommand } from '@acorex/platform/runtime';
13
13
 
14
+ /** Resolved chord string used by dialog footer shortcut matching. */
15
+ type AXPDialogActionShortcut = AXPKeyboardShortcutChord;
16
+ declare const DEFAULT_CANCEL_DIALOG_ACTION_SHORTCUTS: readonly AXPDialogActionShortcut[];
17
+ declare const DEFAULT_SUBMIT_DIALOG_ACTION_SHORTCUTS: readonly AXPDialogActionShortcut[];
18
+ interface AXPDialogActionOptions {
19
+ /**
20
+ * Additional keyboard shortcuts for this action (e.g. `'ctrl+s'` or `{ keys: 'ctrl+s' }`).
21
+ * Merged with built-in defaults for `cancel` / `submit`. Pass `[]` to disable all shortcuts.
22
+ */
23
+ shortcuts?: AXPKeyboardShortcut[];
24
+ }
25
+
14
26
  /**
15
27
  * Extended widget node properties (excluding type, path, name, options, children)
16
28
  * These properties can be passed as a third parameter to customWidget method
@@ -254,6 +266,14 @@ interface AXPFormFieldOptions extends LayoutWidgetOptions {
254
266
  hint?: AXPMultiLanguageString;
255
267
  hintDisplayMode?: AXPFormFieldHintDisplayMode;
256
268
  }
269
+ interface AXPDialogCloseConfirmationOptions {
270
+ /** When false, dirty-close confirmation is disabled even if the builder flag is set. */
271
+ enabled?: boolean;
272
+ title?: AXPMultiLanguageString;
273
+ message?: AXPMultiLanguageString;
274
+ /** Custom dirty check; defaults to user-origin context paths plus composite widget `api().isDirty()`. */
275
+ isDirty?: (context: Record<string, unknown>, baseline: Record<string, unknown>) => boolean;
276
+ }
257
277
  interface AXPDialogContainerOptions extends LayoutWidgetOptions {
258
278
  title?: string;
259
279
  message?: string;
@@ -261,6 +281,11 @@ interface AXPDialogContainerOptions extends LayoutWidgetOptions {
261
281
  closeButton?: boolean;
262
282
  context?: any;
263
283
  metadata?: AXPMetaData;
284
+ /**
285
+ * When enabled, prompts before dismiss (cancel, Esc, header close) if dialog context is dirty.
286
+ * Set via {@link IDialogBuilder.confirmCloseWhenDirty}.
287
+ */
288
+ confirmCloseWhenDirty?: boolean | AXPDialogCloseConfirmationOptions;
264
289
  /**
265
290
  * When set, invoked on footer action with {@link AXPDialogRef}.
266
291
  * Set via {@link IDialogBuilder.onAction}.
@@ -277,6 +302,7 @@ interface AXPLayoutBuilderDialogConfig {
277
302
  metadata?: AXPMetaData;
278
303
  actions: NonNullable<DialogBuilderState['actions']>;
279
304
  onAction?: (dialogRef: AXPDialogRef) => unknown | Promise<unknown>;
305
+ confirmCloseWhenDirty?: AXPDialogCloseConfirmationOptions;
280
306
  }
281
307
  interface RichTextOptions extends ValueWidgetOptions {
282
308
  placeholder?: AXPMultiLanguageString;
@@ -436,22 +462,24 @@ type WidgetBuilderState = AXPWidgetNode & {
436
462
  type FormFieldBuilderState = AXPWidgetNode & {
437
463
  layout?: AXPGridLayoutOptions;
438
464
  };
465
+ /** Dialog footer action item; extends menu actions with placement. */
466
+ type AXPDialogActionMenuItem = AXPActionMenuItem & {
467
+ position?: 'prefix' | 'suffix';
468
+ };
439
469
  type DialogBuilderState = AXPWidgetNode & {
440
470
  layout?: AXPGridLayoutOptions;
441
471
  dialogOptions?: AXPDialogContainerOptions;
442
472
  actions?: {
443
473
  footer?: {
444
- prefix?: AXPActionMenuItem[];
445
- suffix?: AXPActionMenuItem[];
474
+ prefix?: AXPDialogActionMenuItem[];
475
+ suffix?: AXPDialogActionMenuItem[];
446
476
  };
447
477
  };
448
478
  };
449
479
  interface IActionBuilder {
450
- cancel(text?: string): IActionBuilder;
451
- submit(text?: string): IActionBuilder;
452
- custom(action: AXPActionMenuItem & {
453
- position?: 'prefix' | 'suffix';
454
- }): IActionBuilder;
480
+ cancel(text?: string, options?: AXPDialogActionOptions): IActionBuilder;
481
+ submit(text?: string, options?: AXPDialogActionOptions): IActionBuilder;
482
+ custom(action: AXPDialogActionMenuItem, options?: AXPDialogActionOptions): IActionBuilder;
455
483
  }
456
484
  interface ILayoutBuilder {
457
485
  grid(delegate: (container: IGridContainerBuilder) => void): ILayoutBuilder;
@@ -626,6 +654,10 @@ interface IDialogBuilder<T = AXPDialogRef> {
626
654
  * If handler returns, dialog closes and show() resolves with the return value.
627
655
  */
628
656
  onAction(handler: (dialogRef: AXPDialogRef) => T | Promise<T>): IDialogBuilder<T>;
657
+ /**
658
+ * Prompts for confirmation before dismiss when the dialog context is dirty (cancel, Esc, header close).
659
+ */
660
+ confirmCloseWhenDirty(options?: boolean | AXPDialogCloseConfirmationOptions): IDialogBuilder<T>;
629
661
  addCustomAction(action: AXPActionMenuItem): IDialogBuilder<T>;
630
662
  build(): AXPWidgetNode;
631
663
  show(): Promise<T>;
@@ -708,7 +740,7 @@ declare class AXPLayoutRendererComponent implements OnInit {
708
740
  * Prefer explicit {@link AXPWidgetNode.mode} on the root node (e.g. dialog flex `mode('view')`)
709
741
  * so nested widgets resolve view vs edit correctly; fall back to the layout `mode` input.
710
742
  */
711
- protected effectiveRenderMode: _angular_core.Signal<"view" | "edit" | "column" | "designer" | "print" | "filter">;
743
+ protected effectiveRenderMode: _angular_core.Signal<"filter" | "view" | "edit" | "column" | "designer" | "print">;
712
744
  /**
713
745
  * Convert layout data to widget tree when inputs change
714
746
  */
@@ -911,9 +943,21 @@ declare class AXPDialogRendererComponent extends AXBasePageComponent implements
911
943
  private expressionEvaluator;
912
944
  private readonly commandService;
913
945
  private readonly hookService;
946
+ private readonly unsavedChangesConfirm;
947
+ private readonly overlayService;
948
+ private readonly translationService;
949
+ private readonly document;
950
+ private readonly host;
914
951
  private dialogResult?;
915
952
  /** Ensures `show()` resolves once when the dialog closes (footer action or header close). */
916
953
  private callbackInvoked;
954
+ /** Callback payload applied when a dismiss is allowed in {@link onClosing}. */
955
+ private pendingDismissResolvePayload?;
956
+ /** Skips dirty confirmation on the next {@link onClosing} (successful submit / programmatic close). */
957
+ private skipNextOnClosingDirtyCheck;
958
+ /** Blocks re-entrant {@link onClosing} while the first close gate is still resolving. */
959
+ private closeGateInProgress;
960
+ private readonly destroyRef;
917
961
  context: _angular_core.WritableSignal<any>;
918
962
  callBack: (result: unknown) => void;
919
963
  data: any;
@@ -924,7 +968,24 @@ declare class AXPDialogRendererComponent extends AXBasePageComponent implements
924
968
  * Correlate layout context snapshots for distributed hooks (`layout-builder.dialog.context-changed`).
925
969
  */
926
970
  private readonly contextChangedHooksSessionKey;
971
+ /**
972
+ * Capture-phase footer shortcuts — runs before widget editors (select, date, text) that stop keydown bubbling.
973
+ */
974
+ private readonly onDialogShortcutCapture;
927
975
  ngOnInit(): void;
976
+ /**
977
+ * Popup shell hook — handles header **X** and **Esc** (when `closeButton` is enabled).
978
+ * This is the only place that prompts for unsaved changes.
979
+ */
980
+ onClosing(e: AXComponentClosing): Promise<void>;
981
+ /**
982
+ * Footer cancel and other in-app dismiss actions. Routes through `super.close()` so the
983
+ * popup shell invokes {@link onClosing} exactly once (same path as **X** / **Esc**).
984
+ */
985
+ private requestDismiss;
986
+ /** Invokes `show()` callback with the pending payload or a default cancel {@link AXPDialogRef}. */
987
+ private completeDismissResolve;
988
+ private getWidgetContainer;
928
989
  private layoutRenderer;
929
990
  private debounceTimer?;
930
991
  handleContextChanged(event: any): void;
@@ -935,6 +996,8 @@ declare class AXPDialogRendererComponent extends AXBasePageComponent implements
935
996
  isFormLoading(): boolean;
936
997
  isSubmitting(): boolean;
937
998
  executeAction(action: AXPWidgetCoreElementAction): Promise<void>;
999
+ private isDialogDirty;
1000
+ private confirmDismissIfDirty;
938
1001
  /** Whether the layout form should be validated before running this footer command. */
939
1002
  private shouldValidateBeforeAction;
940
1003
  /** True when a footer handler or command result asks to leave the dialog open (`keepDialogOpen` on the result or `result.data`). */
@@ -947,7 +1010,9 @@ declare class AXPDialogRendererComponent extends AXBasePageComponent implements
947
1010
  private resolveActionCommandName;
948
1011
  private parseWidgetCommand;
949
1012
  private invokeWidget;
950
- close(result?: DialogRendererResult): Promise<void>;
1013
+ close(result?: DialogRendererResult, options?: {
1014
+ skipDirtyConfirm?: boolean;
1015
+ }): Promise<void>;
951
1016
  private aggregateAndEvaluateActions;
952
1017
  private collectWidgetActions;
953
1018
  private collectDialogActionsFromConfig;
@@ -1001,5 +1066,5 @@ declare class AXPPreviewWidgetFieldCommand implements AXPCommand<AXPPreviewWidge
1001
1066
  static ɵprov: _angular_core.ɵɵInjectableDeclaration<AXPPreviewWidgetFieldCommand>;
1002
1067
  }
1003
1068
 
1004
- export { AXPDialogRendererComponent, AXPLayoutBuilderService, AXPLayoutConversionService, AXPLayoutRendererComponent, AXPPreviewWidgetFieldCommand, AXP_LAYOUT_BUILDER_DIALOG_BEFORE_OPEN_HOOK_KEY, AXP_LAYOUT_BUILDER_DIALOG_CONFIG_HOOK_KEY, AXP_LAYOUT_BUILDER_DIALOG_CONTEXT_CHANGED_HOOK_KEY, AXP_PREVIEW_WIDGET_FIELD_COMMAND_KEY, LayoutBuilderModule, createDismissedDialogRef };
1005
- export type { AXPDialogContainerOptions, AXPDialogRef, AXPDynamicFormDefinition, AXPDynamicFormDirection, AXPDynamicFormFieldDefinition, AXPDynamicFormGroupDefinition, AXPDynamicFormLook, AXPDynamicFormMode, AXPFieldsetContainerOptions, AXPFlexContainerOptions, AXPFormFieldHintDisplayMode, AXPFormFieldOptions, AXPGridContainerOptions, AXPLayoutBuilderDialogBeforeOpenPayload, AXPLayoutBuilderDialogConfig, AXPLayoutBuilderDialogContextChangedPayload, AXPListWidgetColumn, AXPListWidgetOptions, AXPListWidgetRowCommand, AXPPageContainerOptions, AXPPanelContainerOptions, AXPPreviewWidgetFieldCommandInput, AXPStepDefinition, AXPStepWizardContainerOptions, AXPStepWizardDefinition, AXPStepWizardGuardPayload, AXPStepWizardStatus, AXPTabsetContainerOptions, AXPWidgetConfiguration, AXPWidgetNodeExtendedProperties, AXPWizardActionDefinition, AXPWizardActions, ColorBoxOptions, DateTimeBoxOptions, DialogBuilderState, DialogRendererConfig, DialogRendererResult, FormFieldBuilderState, IActionBuilder, IBaseContainerBuilder, IChildContainerBuilder, IDialogBuilder, IFieldsetContainerBuilder, IFlexContainerBuilder, IFormFieldBuilder, IGridContainerBuilder, ILayoutBuilder, ILayoutContainerBuilder, IListWidgetBuilder, IPageContainerBuilder, IPanelContainerBuilder, IStepBuilder, IStepWizardBuilder, ITabsetContainerBuilder, IWidgetBuilder, IWidgetContainerBuilder, InheritanceContext, InheritedProperties, LargeTextBoxOptions, LayoutBuilderState, LayoutWidgetOptions, LookupBoxOptions, NumberBoxOptions, PasswordBoxOptions, RichTextOptions, SelectBoxOptions, SelectionListOptions, TextBoxOptions, ToggleSwitchOptions, ValueWidgetOptions, WidgetBuilderState };
1069
+ export { AXPDialogRendererComponent, AXPLayoutBuilderService, AXPLayoutConversionService, AXPLayoutRendererComponent, AXPPreviewWidgetFieldCommand, AXP_LAYOUT_BUILDER_DIALOG_BEFORE_OPEN_HOOK_KEY, AXP_LAYOUT_BUILDER_DIALOG_CONFIG_HOOK_KEY, AXP_LAYOUT_BUILDER_DIALOG_CONTEXT_CHANGED_HOOK_KEY, AXP_PREVIEW_WIDGET_FIELD_COMMAND_KEY, DEFAULT_CANCEL_DIALOG_ACTION_SHORTCUTS, DEFAULT_SUBMIT_DIALOG_ACTION_SHORTCUTS, LayoutBuilderModule, createDismissedDialogRef };
1070
+ export type { AXPDialogActionMenuItem, AXPDialogActionOptions, AXPDialogActionShortcut, AXPDialogCloseConfirmationOptions, AXPDialogContainerOptions, AXPDialogRef, AXPDynamicFormDefinition, AXPDynamicFormDirection, AXPDynamicFormFieldDefinition, AXPDynamicFormGroupDefinition, AXPDynamicFormLook, AXPDynamicFormMode, AXPFieldsetContainerOptions, AXPFlexContainerOptions, AXPFormFieldHintDisplayMode, AXPFormFieldOptions, AXPGridContainerOptions, AXPLayoutBuilderDialogBeforeOpenPayload, AXPLayoutBuilderDialogConfig, AXPLayoutBuilderDialogContextChangedPayload, AXPListWidgetColumn, AXPListWidgetOptions, AXPListWidgetRowCommand, AXPPageContainerOptions, AXPPanelContainerOptions, AXPPreviewWidgetFieldCommandInput, AXPStepDefinition, AXPStepWizardContainerOptions, AXPStepWizardDefinition, AXPStepWizardGuardPayload, AXPStepWizardStatus, AXPTabsetContainerOptions, AXPWidgetConfiguration, AXPWidgetNodeExtendedProperties, AXPWizardActionDefinition, AXPWizardActions, ColorBoxOptions, DateTimeBoxOptions, DialogBuilderState, DialogRendererConfig, DialogRendererResult, FormFieldBuilderState, IActionBuilder, IBaseContainerBuilder, IChildContainerBuilder, IDialogBuilder, IFieldsetContainerBuilder, IFlexContainerBuilder, IFormFieldBuilder, IGridContainerBuilder, ILayoutBuilder, ILayoutContainerBuilder, IListWidgetBuilder, IPageContainerBuilder, IPanelContainerBuilder, IStepBuilder, IStepWizardBuilder, ITabsetContainerBuilder, IWidgetBuilder, IWidgetContainerBuilder, InheritanceContext, InheritedProperties, LargeTextBoxOptions, LayoutBuilderState, LayoutWidgetOptions, LookupBoxOptions, NumberBoxOptions, PasswordBoxOptions, RichTextOptions, SelectBoxOptions, SelectionListOptions, TextBoxOptions, ToggleSwitchOptions, ValueWidgetOptions, WidgetBuilderState };
@@ -1,5 +1,5 @@
1
1
  import * as _angular_core from '@angular/core';
2
- import { Signal, InjectionToken, InputSignal, TemplateRef, ElementRef, OnDestroy, OnInit, QueryList, OnChanges, Type, EventEmitter, WritableSignal } from '@angular/core';
2
+ import { Signal, InjectionToken, InputSignal, TemplateRef, ElementRef, OnDestroy, OnInit, QueryList, Type, EventEmitter, WritableSignal } from '@angular/core';
3
3
  import { AXPActivityLog, AXPSystemActionType, AXPCategoryEntity, AXPColumnQuery, AXPContextData, AXPFilterClause, AXPFilterDefinition, AXPFilterQuery, AXPContextChangeEvent, AXPMultiLanguageString, AXPActionMenuItem, AXPExecuteCommand, AXPExecuteCommandResult, containsHtmlMarkup, AXPSortDefinition, AXPSortQuery, AXPMetaData, AXPViewQuery } from '@acorex/platform/core';
4
4
  import { AXHtmlEvent, AXValueChangedEvent, AXClickEvent, AXDataSource, AXDataSourceFilterOption, AXDataSourceOperator, AXFilterLogic, AXEvent, AXRange } from '@acorex/cdk/common';
5
5
  import * as _ngrx_signals from '@ngrx/signals';
@@ -155,6 +155,7 @@ declare class AXPTaskBadgeDirective {
155
155
  overlayLoadingTaskCount: _angular_core.Signal<number>;
156
156
  navigationLoadingTaskCount: _angular_core.Signal<number>;
157
157
  sideMenuState: _angular_core.Signal<_acorex_platform_themes_shared.AXPSideMenuState>;
158
+ overlaySideMenuOpen: _angular_core.Signal<boolean>;
158
159
  sideMenuWidth: _angular_core.Signal<number>;
159
160
  sideMenuCompactWidth: _angular_core.Signal<number>;
160
161
  menuVerticalMode: _angular_core.Signal<_acorex_platform_themes_shared.AXPMenuVerticalMode>;
@@ -167,6 +168,7 @@ declare class AXPTaskBadgeDirective {
167
168
  isOverlayLoading: _angular_core.Signal<boolean>;
168
169
  isNavigationLoading: _angular_core.Signal<boolean>;
169
170
  isMenuHorizontal: _angular_core.Signal<boolean>;
171
+ effectiveMenuVerticalMode: _angular_core.Signal<_acorex_platform_themes_shared.AXPMenuVerticalMode>;
170
172
  sideMenuDrawerWidth: _angular_core.Signal<number>;
171
173
  changeThemeMode: (theme: _acorex_platform_themes_shared.AXPThemeMode) => void;
172
174
  openSideMenu: () => void;
@@ -191,6 +193,7 @@ declare class AXPTaskBadgeDirective {
191
193
  overlayLoadingTaskCount: number;
192
194
  navigationLoadingTaskCount: number;
193
195
  sideMenuState: _acorex_platform_themes_shared.AXPSideMenuState;
196
+ overlaySideMenuOpen: boolean;
194
197
  sideMenuWidth: number;
195
198
  sideMenuCompactWidth: number;
196
199
  menuVerticalMode: _acorex_platform_themes_shared.AXPMenuVerticalMode;
@@ -934,6 +937,11 @@ declare class AXPQueryFiltersComponent {
934
937
  private filterOperatorMiddleware;
935
938
  private settingsService;
936
939
  private readonly expressionEvaluator;
940
+ private readonly shortcutRegistry;
941
+ private readonly destroyRef;
942
+ private readonly elementRef;
943
+ protected readonly filterFocusShortcutKeys: string[];
944
+ constructor();
937
945
  filtersDefinitions: _angular_core.InputSignal<AXPFilterDefinition[]>;
938
946
  initialFilters: _angular_core.InputSignal<AXPFilterQuery[]>;
939
947
  onFiltersChanged: _angular_core.OutputEmitterRef<AXPFilterQuery[]>;
@@ -979,13 +987,16 @@ declare class AXPQueryFiltersComponent {
979
987
  protected onPopoverOpened(e: AXEvent): void;
980
988
  protected deactivateAllListItems(): void;
981
989
  protected isFilterDisabled(definition: AXPFilterDefinition): boolean;
990
+ /**
991
+ * Resolves filter chip labels; translates i18n keys stored in select `displayText` or datasource titles.
992
+ */
993
+ private formatFilterDisplayValue;
982
994
  private createExpressionScope;
983
995
  private isObservableLike;
984
996
  private buildFilterTriggerScope;
985
997
  private getFilterEventScope;
986
998
  private getFilterWidgetScopeForDefinition;
987
999
  private removeFilterFieldByName;
988
- protected handleKeyboardEvent(event: KeyboardEvent): Promise<void>;
989
1000
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXPQueryFiltersComponent, never>;
990
1001
  static ɵcmp: _angular_core.ɵɵComponentDeclaration<AXPQueryFiltersComponent, "axp-query-filters", never, { "filtersDefinitions": { "alias": "filtersDefinitions"; "required": false; "isSignal": true; }; "initialFilters": { "alias": "initialFilters"; "required": false; "isSignal": true; }; }, { "onFiltersChanged": "onFiltersChanged"; }, never, never, true, never>;
991
1002
  }
@@ -1229,24 +1240,21 @@ declare class AXPLayoutSideDetailPanelComponent {
1229
1240
  static ɵcmp: _angular_core.ɵɵComponentDeclaration<AXPLayoutSideDetailPanelComponent, "axp-layout-side-detail-panel", never, { "multiSelectLabel": { "alias": "multiSelectLabel"; "required": false; "isSignal": true; }; "header": { "alias": "header"; "required": false; "isSignal": true; }; "sections": { "alias": "sections"; "required": false; "isSignal": true; }; "rows": { "alias": "rows"; "required": false; "isSignal": true; }; "rowsSectionTitle": { "alias": "rowsSectionTitle"; "required": false; "isSignal": true; }; "noRowsMessage": { "alias": "noRowsMessage"; "required": false; "isSignal": true; }; "emptyState": { "alias": "emptyState"; "required": false; "isSignal": true; }; }, { "panelClose": "panelClose"; }, ["projectedSections"], never, true, never>;
1230
1241
  }
1231
1242
 
1232
- declare class AXPLogoComponent implements OnInit, OnChanges {
1233
- source: any;
1234
- protected activeSource: any;
1235
- protected logoType: string;
1236
- protected isCompactLogo: boolean;
1243
+ declare class AXPLogoComponent {
1244
+ source: _angular_core.InputSignal<any>;
1245
+ private readonly themeStore;
1246
+ private readonly platformConfig;
1247
+ private readonly deviceService;
1237
1248
  protected readonly compactLogoSize = 32;
1238
- private inputSource;
1239
- private platform;
1240
- private themeStore;
1241
- private platformConfig;
1242
- private cdr;
1243
- constructor();
1244
- ngOnInit(): void;
1245
- ngOnChanges(): void;
1246
- private updateActiveSource;
1247
- private setLogoType;
1249
+ /**
1250
+ * Resolves menu mode with mobile overlay viewports forcing full logo display.
1251
+ */
1252
+ private readonly resolvedMenuMode;
1253
+ protected readonly activeSource: _angular_core.Signal<any>;
1254
+ protected readonly isCompactLogo: _angular_core.Signal<boolean>;
1255
+ protected readonly logoType: _angular_core.Signal<"icon" | "url" | "component" | undefined>;
1248
1256
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXPLogoComponent, never>;
1249
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<AXPLogoComponent, "axp-logo", never, { "source": { "alias": "source"; "required": false; }; }, {}, never, never, true, never>;
1257
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<AXPLogoComponent, "axp-logo", never, { "source": { "alias": "source"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
1250
1258
  }
1251
1259
 
1252
1260
  type MarkdownSegmentType = 'markdown' | 'code';
@@ -2470,6 +2478,9 @@ interface AXPSpreadsheetConfig {
2470
2478
 
2471
2479
  declare class AXPSpreadsheetComponent {
2472
2480
  protected readonly translationService: AXTranslationService;
2481
+ private readonly shortcutRegistry;
2482
+ private readonly destroyRef;
2483
+ private readonly elementRef;
2473
2484
  /**
2474
2485
  * Translated column titles
2475
2486
  */
@@ -2643,10 +2654,6 @@ declare class AXPSpreadsheetComponent {
2643
2654
  * Handle blur event to stop editing (when user clicks away from cell)
2644
2655
  */
2645
2656
  protected handleCellBlur(rowId: string, columnName: string): void;
2646
- /**
2647
- * Handle Escape key to cancel editing
2648
- */
2649
- protected handleKeyDown(event: KeyboardEvent): void;
2650
2657
  /**
2651
2658
  * Commit cell edit (save changes and close editing mode)
2652
2659
  */
@@ -3005,8 +3012,7 @@ declare class AXPUserAvatarComponent implements OnInit, OnDestroy {
3005
3012
  ngOnDestroy(): void;
3006
3013
  private loadUserData;
3007
3014
  /**
3008
- * Generate avatar image source
3009
- * This is a placeholder - implement based on your actual requirements
3015
+ * Resolves avatar image URL from user data and resets load state.
3010
3016
  */
3011
3017
  private generateAvatarSrc;
3012
3018
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXPUserAvatarComponent, never>;