@acorex/platform 21.0.0-next.71 → 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 (51) 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 +3792 -1679
  6. package/fesm2022/acorex-platform-common.mjs.map +1 -1
  7. package/fesm2022/acorex-platform-core.mjs +1112 -103
  8. package/fesm2022/acorex-platform-core.mjs.map +1 -1
  9. package/fesm2022/acorex-platform-layout-builder.mjs +53 -170
  10. package/fesm2022/acorex-platform-layout-builder.mjs.map +1 -1
  11. package/fesm2022/acorex-platform-layout-components.mjs +70 -46
  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 +341 -418
  18. package/fesm2022/acorex-platform-layout-entity.mjs.map +1 -1
  19. package/fesm2022/acorex-platform-layout-views.mjs +675 -301
  20. package/fesm2022/acorex-platform-layout-views.mjs.map +1 -1
  21. package/fesm2022/acorex-platform-layout-widget-core.mjs +115 -74
  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 +184 -655
  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 +76 -32
  34. package/fesm2022/acorex-platform-themes-default.mjs.map +1 -1
  35. package/package.json +1 -1
  36. package/types/acorex-platform-auth.d.ts +2 -0
  37. package/types/acorex-platform-common.d.ts +891 -259
  38. package/types/acorex-platform-core.d.ts +284 -40
  39. package/types/acorex-platform-layout-builder.d.ts +10 -22
  40. package/types/acorex-platform-layout-components.d.ts +9 -7
  41. package/types/acorex-platform-layout-entity.d.ts +37 -41
  42. package/types/acorex-platform-layout-views.d.ts +125 -67
  43. package/types/acorex-platform-layout-widget-core.d.ts +53 -61
  44. package/types/acorex-platform-layout-widgets.d.ts +33 -20
  45. package/types/acorex-platform-themes-default.d.ts +14 -4
  46. package/fesm2022/acorex-platform-common-common-settings.provider-Bi1RYif5.mjs.map +0 -1
  47. package/fesm2022/acorex-platform-layout-entity-attachments-page.component-D8iQnT-R.mjs.map +0 -1
  48. package/fesm2022/acorex-platform-themes-default-error-401.component-C7EYJzSr.mjs +0 -31
  49. package/fesm2022/acorex-platform-themes-default-error-401.component-C7EYJzSr.mjs.map +0 -1
  50. package/fesm2022/acorex-platform-themes-default-error-404.component-7MVLMwIa.mjs +0 -25
  51. package/fesm2022/acorex-platform-themes-default-error-404.component-7MVLMwIa.mjs.map +0 -1
@@ -3,7 +3,7 @@ import { Signal, InjectionToken, ComponentRef, OnInit, EventEmitter, OnChanges,
3
3
  import * as _acorex_platform_layout_widget_core from '@acorex/platform/layout/widget-core';
4
4
  import * as _ngrx_signals from '@ngrx/signals';
5
5
  import * as _acorex_platform_core from '@acorex/platform/core';
6
- import { AXPOptionsData, AXPMultiLanguageString, AXPDefinitionCategory, AXPDataType, AXPExpression, AXPWidgetTriggers, AXPMetaData, AXPValueTransformerFunctions, AXPValidationRules, AXPPartialNested, AXPContextUpdateOptions, AXPProperty, AXPContextChangeEvent, AXPExpressionEvaluatorService } from '@acorex/platform/core';
6
+ import { AXPOptionsData, AXPMultiLanguageString, AXPDefinitionCategory, AXPDataType, AXPExpression, AXPWidgetTriggers, AXPMetaData, AXPValueTransformerFunctions, AXPValidationRules, AXPPartialNested, AXPProperty, AXPContextChangeEvent, AXPExpressionEvaluatorService } from '@acorex/platform/core';
7
7
  export { AXPDefinitionCategory, normalizeDefinitionCategories } from '@acorex/platform/core';
8
8
  import { AXValueChangedEvent, AXDataSource } from '@acorex/cdk/common';
9
9
  import { Subject, BehaviorSubject } from 'rxjs';
@@ -46,9 +46,7 @@ type AXPWidgetCoreElementAction = {
46
46
  zone?: 'header' | 'footer';
47
47
  placement?: 'prefix' | 'suffix';
48
48
  scope?: 'primary' | 'secondary';
49
- /** Keyboard shortcuts that trigger this action (e.g. `'Enter'`, `'ctrl+s'`). */
50
49
  shortcuts?: string[];
51
- /** When `command` is not `widget:<name>.<action>`, widget name used to resolve `api` for `hidden` / `disabled` expressions. */
52
50
  predicateApiWidgetName?: string;
53
51
  };
54
52
  declare abstract class AXPWidgetCoreElement {
@@ -67,7 +65,6 @@ declare class AXPWidgetCoreService {
67
65
  readonly status: Signal<AXPPageStatus>;
68
66
  readonly isBusy: Signal<boolean>;
69
67
  registeredWidgetsCount: _angular_core.WritableSignal<number>;
70
- /** Bumped when a widget reports dirty-state changes via `api().isDirty()`. */
71
68
  private readonly dirtyWidgetsRevision;
72
69
  readonly dirtyWidgetsRevisionSignal: Signal<number>;
73
70
  get variables(): any;
@@ -84,22 +81,9 @@ declare class AXPWidgetCoreService {
84
81
  setFunctions(key: string, value: any): void;
85
82
  registerWidget(id: string, widget: AXPWidgetCoreElement): void;
86
83
  getWidget(id: string): AXPWidgetCoreElement | undefined;
87
- /**
88
- * Waits until a widget with the given id is registered, then resolves with it.
89
- * If the widget is already registered, resolves immediately.
90
- * Optionally accepts a timeout (in ms) after which it resolves with undefined.
91
- */
92
84
  waitForWidget(id: string, timeoutMs?: number): Promise<AXPWidgetCoreElement | undefined>;
93
- /**
94
- * Returns a list of registered widget ids (names).
95
- */
96
85
  listRegisteredWidgetNames(): string[];
97
- /** Notifies listeners that a widget's composite dirty state may have changed. */
98
86
  notifyWidgetDirtyChanged(): void;
99
- /**
100
- * Returns whether any registered widget reports dirty state via `api().isDirty()`.
101
- */
102
- hasDirtyWidgets(): boolean;
103
87
  ngOnDestroy(): void;
104
88
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXPWidgetCoreService, never>;
105
89
  static ɵprov: _angular_core.ɵɵInjectableDeclaration<AXPWidgetCoreService>;
@@ -405,35 +389,36 @@ declare abstract class AXPBaseWidgetComponent<TOptions extends Record<string, un
405
389
  protected readonly contextService: {
406
390
  data: _angular_core.Signal<_acorex_platform_core.AXPContextData>;
407
391
  state: _angular_core.Signal<_acorex_platform_core.AXPContextState>;
408
- initialSnapshot: _angular_core.Signal<{}>;
409
- previousSnapshot: _angular_core.Signal<{}>;
410
- userDirtyPaths: _angular_core.Signal<string[]>;
392
+ savedSnapshot: _angular_core.Signal<_acorex_platform_core.AXPContextData>;
393
+ previousSnapshot: _angular_core.Signal<_acorex_platform_core.AXPContextData>;
411
394
  lastChange: _ngrx_signals.DeepSignal<_acorex_platform_core.AXPContextChangeEvent>;
412
395
  isChanged: _angular_core.Signal<boolean>;
413
396
  isReset: _angular_core.Signal<boolean>;
414
397
  isInitiated: _angular_core.Signal<boolean>;
415
398
  isEmpty: _angular_core.Signal<boolean>;
399
+ isSavedCommitted: _angular_core.Signal<boolean>;
416
400
  isDirty: _angular_core.Signal<boolean>;
417
- isUserDirty: _angular_core.Signal<boolean>;
418
401
  snapshot: _angular_core.Signal<_acorex_platform_core.AXPContextData>;
419
- initial: _angular_core.Signal<{}>;
420
- 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>;
421
405
  changeEvent: _angular_core.Signal<_acorex_platform_core.AXPContextChangeEvent>;
422
- update: (path: string, value: any, options?: AXPContextUpdateOptions) => void;
423
- applyObjectPaths: (obj: Record<string, unknown>, options?: AXPContextUpdateOptions, prefix?: string) => void;
424
- patch: (context: Record<string, any>, second?: boolean | _acorex_platform_core.AXPContextPatchOptions) => 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;
425
410
  reset: () => void;
426
411
  set: (initialData: any) => void;
427
412
  getValue: (path: string) => any;
413
+ getSavedValue: (path: string) => any;
428
414
  hasValue: (path: string) => boolean;
429
- commitBaseline: () => void;
430
- clearUserDirtyPaths: () => void;
415
+ commitSaved: () => void;
416
+ applyParentBind: (merged: _acorex_platform_core.AXPContextData) => void;
431
417
  } & _ngrx_signals.StateSource<{
432
418
  data: _acorex_platform_core.AXPContextData;
433
419
  state: _acorex_platform_core.AXPContextState;
434
- initialSnapshot: {};
435
- previousSnapshot: {};
436
- userDirtyPaths: string[];
420
+ savedSnapshot: _acorex_platform_core.AXPContextData;
421
+ previousSnapshot: _acorex_platform_core.AXPContextData;
437
422
  lastChange: _acorex_platform_core.AXPContextChangeEvent;
438
423
  }>;
439
424
  readonly config: _acorex_platform_layout_widget_core.AXPWidgetConfig<any>;
@@ -493,9 +478,7 @@ declare abstract class AXPValueWidgetComponent<T = any | null, TOptions extends
493
478
  getValue: _angular_core.Signal<T>;
494
479
  protected validationRules: _angular_core.Signal<AXPValidationRules>;
495
480
  protected extractValue(path: string): any;
496
- setValue(value: T | null | undefined, options?: AXPContextUpdateOptions): void;
497
- /** Persists a user-initiated value change into the shared context store. */
498
- setUserValue(value: T | null | undefined): void;
481
+ setValue(value: T | null | undefined): void;
499
482
  protected detectFullPath(): void;
500
483
  protected handleValueChanged(e: AXValueChangedEvent<T>): void;
501
484
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXPValueWidgetComponent<any, any>, never>;
@@ -794,50 +777,57 @@ declare class AXPWidgetContainerComponent {
794
777
  readonly contextService: {
795
778
  data: _angular_core.Signal<_acorex_platform_core.AXPContextData>;
796
779
  state: _angular_core.Signal<_acorex_platform_core.AXPContextState>;
797
- initialSnapshot: _angular_core.Signal<{}>;
798
- previousSnapshot: _angular_core.Signal<{}>;
799
- userDirtyPaths: _angular_core.Signal<string[]>;
780
+ savedSnapshot: _angular_core.Signal<_acorex_platform_core.AXPContextData>;
781
+ previousSnapshot: _angular_core.Signal<_acorex_platform_core.AXPContextData>;
800
782
  lastChange: _ngrx_signals.DeepSignal<AXPContextChangeEvent>;
801
783
  isChanged: _angular_core.Signal<boolean>;
802
784
  isReset: _angular_core.Signal<boolean>;
803
785
  isInitiated: _angular_core.Signal<boolean>;
804
786
  isEmpty: _angular_core.Signal<boolean>;
787
+ isSavedCommitted: _angular_core.Signal<boolean>;
805
788
  isDirty: _angular_core.Signal<boolean>;
806
- isUserDirty: _angular_core.Signal<boolean>;
807
789
  snapshot: _angular_core.Signal<_acorex_platform_core.AXPContextData>;
808
- initial: _angular_core.Signal<{}>;
809
- 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>;
810
793
  changeEvent: _angular_core.Signal<AXPContextChangeEvent>;
811
794
  update: (path: string, value: any, options?: _acorex_platform_core.AXPContextUpdateOptions) => void;
812
795
  applyObjectPaths: (obj: Record<string, unknown>, options?: _acorex_platform_core.AXPContextUpdateOptions, prefix?: string) => void;
813
- patch: (context: Record<string, any>, second?: boolean | _acorex_platform_core.AXPContextPatchOptions) => void;
796
+ patch: (context: Record<string, any>, options?: _acorex_platform_core.AXPContextPatchOptions) => void;
797
+ revertToSaved: () => void;
814
798
  reset: () => void;
815
799
  set: (initialData: any) => void;
816
800
  getValue: (path: string) => any;
801
+ getSavedValue: (path: string) => any;
817
802
  hasValue: (path: string) => boolean;
818
- commitBaseline: () => void;
819
- clearUserDirtyPaths: () => void;
803
+ commitSaved: () => void;
804
+ applyParentBind: (merged: _acorex_platform_core.AXPContextData) => void;
820
805
  } & _ngrx_signals.StateSource<{
821
806
  data: _acorex_platform_core.AXPContextData;
822
807
  state: _acorex_platform_core.AXPContextState;
823
- initialSnapshot: {};
824
- previousSnapshot: {};
825
- userDirtyPaths: string[];
808
+ savedSnapshot: _acorex_platform_core.AXPContextData;
809
+ previousSnapshot: _acorex_platform_core.AXPContextData;
826
810
  lastChange: AXPContextChangeEvent;
827
811
  }>;
828
812
  readonly builderService: AXPWidgetCoreService;
829
813
  readonly onContextChanged: EventEmitter<AXPContextChangeEvent>;
814
+ private lastEmittedFormDirty;
815
+ private savedBaselineTimer?;
830
816
  set context(value: any);
831
817
  set functions(v: any);
832
- /** True when user-edited context paths or composite widgets report dirty state. */
818
+ readonly isSavedCommitted: _angular_core.Signal<boolean>;
833
819
  readonly isFormDirty: _angular_core.Signal<boolean>;
834
820
  constructor();
835
821
  status: _angular_core.Signal<_acorex_platform_layout_widget_core.AXPPageStatus>;
836
822
  isBusy: _angular_core.Signal<boolean>;
837
823
  refresh(): void;
838
824
  find(name: string): Promise<_acorex_platform_layout_widget_core.AXPWidgetCoreElement | undefined>;
839
- /** Replaces context and clears dirty tracking (discard, save reload, external reset). */
840
- replaceContext(value: unknown): void;
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;
841
831
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXPWidgetContainerComponent, never>;
842
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>;
843
833
  }
@@ -1003,35 +993,36 @@ declare class AXPWidgetRendererDirective {
1003
993
  protected contextService: {
1004
994
  data: _angular_core.Signal<_acorex_platform_core.AXPContextData>;
1005
995
  state: _angular_core.Signal<_acorex_platform_core.AXPContextState>;
1006
- initialSnapshot: _angular_core.Signal<{}>;
1007
- previousSnapshot: _angular_core.Signal<{}>;
1008
- userDirtyPaths: _angular_core.Signal<string[]>;
996
+ savedSnapshot: _angular_core.Signal<_acorex_platform_core.AXPContextData>;
997
+ previousSnapshot: _angular_core.Signal<_acorex_platform_core.AXPContextData>;
1009
998
  lastChange: _ngrx_signals.DeepSignal<_acorex_platform_core.AXPContextChangeEvent>;
1010
999
  isChanged: _angular_core.Signal<boolean>;
1011
1000
  isReset: _angular_core.Signal<boolean>;
1012
1001
  isInitiated: _angular_core.Signal<boolean>;
1013
1002
  isEmpty: _angular_core.Signal<boolean>;
1003
+ isSavedCommitted: _angular_core.Signal<boolean>;
1014
1004
  isDirty: _angular_core.Signal<boolean>;
1015
- isUserDirty: _angular_core.Signal<boolean>;
1016
1005
  snapshot: _angular_core.Signal<_acorex_platform_core.AXPContextData>;
1017
- initial: _angular_core.Signal<{}>;
1018
- 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>;
1019
1009
  changeEvent: _angular_core.Signal<_acorex_platform_core.AXPContextChangeEvent>;
1020
1010
  update: (path: string, value: any, options?: _acorex_platform_core.AXPContextUpdateOptions) => void;
1021
1011
  applyObjectPaths: (obj: Record<string, unknown>, options?: _acorex_platform_core.AXPContextUpdateOptions, prefix?: string) => void;
1022
- patch: (context: Record<string, any>, second?: boolean | _acorex_platform_core.AXPContextPatchOptions) => void;
1012
+ patch: (context: Record<string, any>, options?: _acorex_platform_core.AXPContextPatchOptions) => void;
1013
+ revertToSaved: () => void;
1023
1014
  reset: () => void;
1024
1015
  set: (initialData: any) => void;
1025
1016
  getValue: (path: string) => any;
1017
+ getSavedValue: (path: string) => any;
1026
1018
  hasValue: (path: string) => boolean;
1027
- commitBaseline: () => void;
1028
- clearUserDirtyPaths: () => void;
1019
+ commitSaved: () => void;
1020
+ applyParentBind: (merged: _acorex_platform_core.AXPContextData) => void;
1029
1021
  } & _ngrx_signals.StateSource<{
1030
1022
  data: _acorex_platform_core.AXPContextData;
1031
1023
  state: _acorex_platform_core.AXPContextState;
1032
- initialSnapshot: {};
1033
- previousSnapshot: {};
1034
- userDirtyPaths: string[];
1024
+ savedSnapshot: _acorex_platform_core.AXPContextData;
1025
+ previousSnapshot: _acorex_platform_core.AXPContextData;
1035
1026
  lastChange: _acorex_platform_core.AXPContextChangeEvent;
1036
1027
  }>;
1037
1028
  protected widgetRegistery: AXPWidgetRegistryService;
@@ -1046,6 +1037,7 @@ declare class AXPWidgetRendererDirective {
1046
1037
  private expressionEvaluators;
1047
1038
  private componentRef;
1048
1039
  private renderTimeoutId;
1040
+ private renderGeneration;
1049
1041
  private hasInitialRender;
1050
1042
  private onContextChanged;
1051
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>;
@@ -1659,7 +1653,6 @@ declare class AXPSelectBoxWidgetEditComponent extends AXPDataListWidgetComponent
1659
1653
  private lastDataSource;
1660
1654
  private hasSeenDataSource;
1661
1655
  private shouldFocus;
1662
- eff: _angular_core.EffectRef;
1663
1656
  focus(): void;
1664
1657
  protected outputs(): (string | {
1665
1658
  name: string;
@@ -1771,8 +1764,11 @@ declare class AXPSelectionListWidgetEditComponent extends AXPDataListWidgetCompo
1771
1764
  protected look: _angular_core.Signal<AXSelectionListLook>;
1772
1765
  protected showControl: _angular_core.Signal<boolean>;
1773
1766
  protected imageMode: _angular_core.Signal<boolean>;
1767
+ protected imageField: _angular_core.Signal<string>;
1774
1768
  protected displayItems: _angular_core.WritableSignal<any[]>;
1775
1769
  private ef;
1770
+ protected resolveItemImage(item: unknown): string;
1771
+ protected resolveItemAlt(item: unknown): string;
1776
1772
  protected handleValueChange(e: AXValueChangedEvent): void;
1777
1773
  private get __class();
1778
1774
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXPSelectionListWidgetEditComponent, never>;
@@ -1781,6 +1777,8 @@ declare class AXPSelectionListWidgetEditComponent extends AXPDataListWidgetCompo
1781
1777
 
1782
1778
  declare class AXPSelectionListWidgetViewComponent extends AXPDataListWidgetComponent {
1783
1779
  protected imageMode: _angular_core.Signal<boolean>;
1780
+ protected imageField: _angular_core.Signal<string>;
1781
+ protected resolveItemImage(item: Record<string, unknown>): string;
1784
1782
  private get __class();
1785
1783
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXPSelectionListWidgetViewComponent, never>;
1786
1784
  static ɵcmp: _angular_core.ɵɵComponentDeclaration<AXPSelectionListWidgetViewComponent, "axp-selection-list-widget-view", never, {}, {}, never, never, true, never>;
@@ -1812,6 +1810,8 @@ interface AXPSelectionListWidgetEditOptions {
1812
1810
  look?: AXSelectionListLook;
1813
1811
  showControl?: boolean;
1814
1812
  imageMode?: boolean;
1813
+ /** Image URL field when `imageMode` is true; defaults to `textField`. */
1814
+ imageField?: string;
1815
1815
  }
1816
1816
  interface AXPSelectionListWidgetColumnOptions {
1817
1817
  valueField?: any;
@@ -1986,7 +1986,7 @@ declare class AXPTextBoxWidgetColumnComponent extends AXPColumnWidgetComponent<s
1986
1986
  declare class AXPTextBoxWidgetEditComponent extends AXPValueWidgetComponent<string | Record<string, string> | undefined> {
1987
1987
  private popupService;
1988
1988
  private translationService;
1989
- protected multiLanguage: _angular_core.Signal<boolean>;
1989
+ protected effectiveMultiLanguage: _angular_core.Signal<boolean>;
1990
1990
  protected hasClearButton: _angular_core.Signal<boolean>;
1991
1991
  protected disabled: _angular_core.Signal<boolean>;
1992
1992
  protected readonly: _angular_core.Signal<boolean>;
@@ -2895,13 +2895,31 @@ declare class AXPSignatureWidgetColumnComponent extends AXPColumnWidgetComponent
2895
2895
  declare class AXPSignatureWidgetEditComponent extends AXPValueWidgetComponent<string | null> {
2896
2896
  #private;
2897
2897
  protected disabled: _angular_core.Signal<boolean>;
2898
- /** 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. */
2899
2899
  protected showOverlay: _angular_core.Signal<boolean>;
2900
- /** 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. */
2901
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>;
2902
2912
  protected paintContainer: _angular_core.Signal<AXPaintContainerComponent | undefined>;
2903
2913
  protected paintView: _angular_core.Signal<AXPaintViewComponent | undefined>;
2904
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;
2905
2923
  protected openEditor(): Promise<void>;
2906
2924
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXPSignatureWidgetEditComponent, never>;
2907
2925
  static ɵcmp: _angular_core.ɵɵComponentDeclaration<AXPSignatureWidgetEditComponent, "axp-signature-pad-widget-edit", never, {}, {}, never, never, true, never>;
@@ -3244,18 +3262,12 @@ declare class AXPItemConfiguratorWidgetEditComponent extends AXPValueWidgetCompo
3244
3262
  protected isInitialized: _angular_core.WritableSignal<boolean>;
3245
3263
  /** True while syncing models from shared context (discard/load); writes use system origin. */
3246
3264
  private readonly hydratingFromContext;
3247
- private readonly baseline;
3248
- private readonly isDirtySignal;
3249
3265
  protected selectedItemIdModel: _angular_core.ModelSignal<string>;
3250
3266
  protected valuesModel: _angular_core.ModelSignal<Record<string, unknown>>;
3251
3267
  private loadNamedDataSourceEffect;
3252
3268
  private syncValueToConfigurator;
3253
3269
  private syncConfiguratorToValue;
3254
- private evaluateDirty;
3255
- api(): AXPWidgetCoreElementAPI;
3256
3270
  private buildWidgetNode;
3257
- private syncBaselineFromModels;
3258
- private setDirtyState;
3259
3271
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXPItemConfiguratorWidgetEditComponent, never>;
3260
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>;
3261
3273
  }
@@ -4916,6 +4928,7 @@ declare class AXPGridItemOptionsWidgetEditComponent extends AXPValueWidgetCompon
4916
4928
 
4917
4929
  declare class AXPSpacingWidgetEditComponent extends AXPValueWidgetComponent<AXPSpacingBoxString> {
4918
4930
  private ngZone;
4931
+ protected readonly toggleShortcutKeys: string[];
4919
4932
  private isDragging;
4920
4933
  protected calculatedValues: _angular_core.WritableSignal<AXPSpacingBox<number>>;
4921
4934
  protected originalValues: _angular_core.WritableSignal<AXPSpacingBox<number>>;
@@ -201,6 +201,8 @@ declare class AXPEntityMasterListViewComponent extends AXPPageLayoutBaseComponen
201
201
  private readonly componentDestroyed;
202
202
  private isRestoringExpandedRows;
203
203
  private restoreExpandedRowsScheduled;
204
+ /** Blocks deferred `replaceUrl` view sync after destroy or once details navigation has started. */
205
+ private listQueryParamSyncDisabled;
204
206
  constructor(platform: AXPlatform);
205
207
  ngOnInit(): Promise<void>;
206
208
  ngAfterViewInit(): Promise<void>;
@@ -219,6 +221,11 @@ declare class AXPEntityMasterListViewComponent extends AXPPageLayoutBaseComponen
219
221
  getPrimaryMenuItems(): Promise<AXPActionMenuItem[]>;
220
222
  getSecondaryMenuItems(): Promise<AXPActionMenuItem[]>;
221
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;
222
229
  private reloadListData;
223
230
  private grid;
224
231
  private updateParentHasChildAfterRefresh;
@@ -238,8 +245,11 @@ declare class AXPRootLayoutFooterComponent {
238
245
  }
239
246
 
240
247
  declare class AXPRootLayoutHeaderComponent {
241
- private config;
242
- protected store: {
248
+ private readonly config;
249
+ private readonly router;
250
+ private readonly destroyRef;
251
+ private readonly shortcutRegistry;
252
+ protected readonly store: {
243
253
  currentMode: _angular_core.Signal<_acorex_platform_themes_shared.AXPThemeMode>;
244
254
  currentPalette: _angular_core.Signal<string>;
245
255
  systemThemeMode: _angular_core.Signal<_acorex_platform_themes_shared.AXPThemeMode>;
@@ -297,8 +307,7 @@ declare class AXPRootLayoutHeaderComponent {
297
307
  menuOrientation: _acorex_platform_themes_shared.AXPMenuOrientation;
298
308
  isPrinting: boolean;
299
309
  }>;
300
- private router;
301
- protected logo: {
310
+ protected readonly logo: {
302
311
  icon: {
303
312
  light: _acorex_platform_core.AXPLogoConfig;
304
313
  dark: _acorex_platform_core.AXPLogoConfig;
@@ -312,6 +321,7 @@ declare class AXPRootLayoutHeaderComponent {
312
321
  dark: _acorex_platform_core.AXPLogoConfig;
313
322
  };
314
323
  } | undefined;
324
+ constructor();
315
325
  protected toggleSideMenu(): void;
316
326
  protected handleLogoClick(): void;
317
327
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXPRootLayoutHeaderComponent, never>;
@@ -1 +0,0 @@
1
- {"version":3,"file":"acorex-platform-common-common-settings.provider-Bi1RYif5.mjs","sources":["../../../../libs/platform/common/src/lib/configs/common-settings.provider.ts"],"sourcesContent":["import { AXPPlatformScope } from '@acorex/platform/core';\nimport { AXPWidgetsCatalog } from '@acorex/platform/layout/widget-core';\nimport { Injectable, Injector } from '@angular/core';\nimport { AXPSettingDefinitionProvider, AXPSettingDefinitionProviderContext } from '../settings';\nimport { AXPCommonSettings } from './common-settings.key';\n\nconst I18N = '@general:settings';\n\n@Injectable()\nexport class AXPCommonSettingProvider implements AXPSettingDefinitionProvider {\n constructor(private _injector: Injector) {}\n\n async provide(context: AXPSettingDefinitionProviderContext): Promise<void> {\n // Define the 'General Settings' group\n context\n .group('general')\n ?.addSection('notifications', `${I18N}.general.notifications.title`, `${I18N}.general.notifications.description`)\n // Add the 'Enable Operation Toasts' setting\n .addSetting({\n key: AXPCommonSettings.EnableOperationToasts,\n title: `${I18N}.general.notifications.enable-operation-toasts.title`,\n scope: AXPPlatformScope.User,\n isInherited: true,\n defaultValue: true,\n widget: {\n type: AXPWidgetsCatalog.toggle,\n options: {\n label: null,\n },\n },\n\n description: `${I18N}.general.notifications.enable-operation-toasts.description`,\n })\n\n // End the 'Notifications' section\n .endSection()\n .addSection('entity', `${I18N}.general.entity.title`, `${I18N}.general.entity.description`)\n // Add the 'Enable Operation Toasts' setting\n .addSetting({\n key: AXPCommonSettings.EntityFilterApplyMode,\n title: `${I18N}.general.entity.filter-apply-mode.title`,\n scope: AXPPlatformScope.User,\n isInherited: true,\n defaultValue: 'auto',\n widget: {\n type: AXPWidgetsCatalog.select,\n options: {\n label: null,\n valueField: 'value',\n textField: 'text',\n dataSource: [\n { value: 'auto', text: `${I18N}.general.entity.filter-apply-mode.options.auto` },\n { value: 'manual', text: `${I18N}.general.entity.filter-apply-mode.options.manual` },\n ],\n },\n },\n\n description: `${I18N}.general.entity.filter-apply-mode.description`,\n })\n .addSetting({\n key: AXPCommonSettings.EntityListPersistenceMode,\n title: `${I18N}.general.entity.list-persistence-mode.title`,\n scope: AXPPlatformScope.User,\n isInherited: true,\n defaultValue: 'persistent',\n widget: {\n type: AXPWidgetsCatalog.select,\n options: {\n label: null,\n valueField: 'value',\n textField: 'text',\n dataSource: [\n { value: 'none', text: `${I18N}.general.entity.list-persistence-mode.options.none` },\n {\n value: 'persistent',\n text: `${I18N}.general.entity.list-persistence-mode.options.persistent`,\n },\n { value: 'route', text: `${I18N}.general.entity.list-persistence-mode.options.route` },\n ],\n },\n },\n description: `${I18N}.general.entity.list-persistence-mode.description`,\n })\n .addSetting({\n key: AXPCommonSettings.ShowCategoryColumnsByDefault,\n title: `${I18N}.general.entity.show-category-columns-by-default.title`,\n scope: AXPPlatformScope.User,\n isInherited: true,\n defaultValue: false,\n widget: {\n type: AXPWidgetsCatalog.toggle,\n options: {\n label: null,\n },\n },\n description: `${I18N}.general.entity.show-category-columns-by-default.description`,\n })\n .addSetting({\n key: AXPCommonSettings.ApplyLayoutOrdering,\n title: `${I18N}.general.entity.apply-layout-ordering.title`,\n scope: AXPPlatformScope.User,\n isInherited: true,\n defaultValue: true,\n widget: {\n type: AXPWidgetsCatalog.toggle,\n options: {\n label: null,\n },\n },\n description: `${I18N}.general.entity.apply-layout-ordering.description`,\n })\n .addSetting({\n key: AXPCommonSettings.RedirectToDetailsAfterCreate,\n title: `${I18N}.general.entity.redirect-to-details-after-create.title`,\n scope: AXPPlatformScope.User,\n isInherited: true,\n defaultValue: true,\n widget: {\n type: AXPWidgetsCatalog.toggle,\n options: {\n label: null,\n },\n },\n description: `${I18N}.general.entity.redirect-to-details-after-create.description`,\n })\n .addSetting({\n key: AXPCommonSettings.ShowPageBadge,\n title: `${I18N}.general.entity.show-page-badge.title`,\n scope: AXPPlatformScope.User,\n isInherited: true,\n defaultValue: true,\n widget: {\n type: AXPWidgetsCatalog.toggle,\n options: {\n label: null,\n },\n },\n description: `${I18N}.general.entity.show-page-badge.description`,\n })\n .addSetting({\n key: AXPCommonSettings.ShowRowIndexColumn,\n title: `${I18N}.general.entity.show-row-index-column.title`,\n scope: AXPPlatformScope.User,\n isInherited: true,\n defaultValue: false,\n widget: {\n type: AXPWidgetsCatalog.toggle,\n options: {\n label: null,\n },\n },\n description: `${I18N}.general.entity.show-row-index-column.description`,\n })\n\n // End the 'Entity Settings' section\n .endSection()\n // End the 'General Settings' group\n .endGroup();\n }\n}\n"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"acorex-platform-layout-entity-attachments-page.component-D8iQnT-R.mjs","sources":["../../../../libs/platform/layout/entity/src/lib/features/attachments-plugin/attachments-page/attachments-page.component.ts"],"sourcesContent":["import { AXPEntity } from '@acorex/platform/common';\nimport {\n AXPContextChangeEvent,\n AXPExecuteCommand,\n AXPExecuteCommandResult,\n type AXPActionMenuItem,\n} from '@acorex/platform/core';\nimport {\n AXPPageLayoutBase,\n AXPPageLayoutBaseComponent,\n type AXPLayoutDetailsViewAction,\n} from '@acorex/platform/layout/views';\nimport {\n AXPWidgetContainerComponent,\n AXPWidgetCoreModule,\n AXPWidgetNode,\n type AXPWidgetCoreElement,\n type AXPWidgetCoreElementAPI,\n} from '@acorex/platform/layout/widget-core';\nimport { AXPEntityDefinitionRegistryService } from '../../../entity-registery.service';\n\nimport {\n ChangeDetectionStrategy,\n Component,\n computed,\n DestroyRef,\n effect,\n inject,\n input,\n signal,\n Signal,\n viewChild,\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { ActivatedRoute } from '@angular/router';\nimport { get, merge } from 'lodash-es';\nimport { Subject, Subscription } from 'rxjs';\nimport {\n persistedAttachments,\n type AXPFileUploaderUploadActionDescriptor,\n} from '../../../widgets/file-uploader-widget';\n\nconst ATTACHMENTS_PAGE_SAVE_COMMAND = 'EntityAttachmentsPage:Save';\nconst ATTACHMENTS_PAGE_DISCARD_COMMAND = 'EntityAttachmentsPage:Discard';\nconst ATTACHMENTS_PAGE_UPLOAD_COMMAND = 'EntityAttachmentsPage:Upload';\n\ntype AttachmentsUploaderApi = AXPWidgetCoreElementAPI & {\n onDirtyChange?: Subject<boolean>;\n onUploadActionsChanged?: Subject<void>;\n getUploadActions?: () => AXPFileUploaderUploadActionDescriptor[];\n runUploadAction?: (plugin: string) => void | Promise<void>;\n markSaved?: () => void;\n syncBaseline?: (saved: unknown) => void;\n discardToBaseline?: () => void;\n isDirty?: () => boolean;\n};\n\n//#region ---- Attachments Page Component ----\n\n/**\n * Page component that renders the attachments property using the file-uploader widget.\n * Used when attachments plugin has display: 'page'.\n * Exposes Save/Discard footer actions (same pattern as questionnaire-questions-page).\n */\n@Component({\n selector: 'axm-attachments-page',\n standalone: true,\n imports: [AXPWidgetCoreModule],\n providers: [\n {\n provide: AXPPageLayoutBase,\n useExisting: AXMAttachmentsPageComponent,\n },\n ],\n template: `\n @for (renderKey of [widgetRenderKey()]; track renderKey) {\n <axp-widgets-container #containerRef [context]=\"context()\" (onContextChanged)=\"onContextChanged($event)\">\n @if (node(); as n) {\n <ng-container axp-widget-renderer [node]=\"n\" [mode]=\"'edit'\"></ng-container>\n }\n </axp-widgets-container>\n }\n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n '[class.axp-page-layout-base]': 'true',\n },\n})\nexport class AXMAttachmentsPageComponent extends AXPPageLayoutBaseComponent {\n /** Default `{}`: avoid NG0950 before page-component-renderer calls setInput. */\n rootContext = input<Record<string, unknown>>({});\n pageConfig = input<Record<string, unknown>>();\n\n private route = inject(ActivatedRoute);\n private entityRegistry = inject(AXPEntityDefinitionRegistryService);\n private hostPageLayout = inject(AXPPageLayoutBase, { optional: true, skipSelf: true });\n private destroyRef = inject(DestroyRef);\n\n private containerRef = viewChild<AXPWidgetContainerComponent>('containerRef');\n\n private entityDef = signal<AXPEntity | null>(null);\n private localContext = signal<Record<string, unknown> | null>(null);\n protected isDirty = signal(false);\n private isSaving = signal(false);\n private previousRecordId = signal<string | undefined>(undefined);\n /** Recreates the inner widget container on discard so the file list resets. */\n protected widgetRenderKey = signal(0);\n private widgetWireGeneration = 0;\n private dirtySubscription?: Subscription;\n private uploadActionsSubscription?: Subscription;\n\n constructor() {\n super();\n\n effect((onCleanup) => {\n const moduleName = this.route.snapshot.parent?.paramMap.get('module');\n const entityName = this.route.snapshot.paramMap.get('entity');\n if (!moduleName || !entityName) {\n this.entityDef.set(null);\n return;\n }\n let cancelled = false;\n this.entityRegistry.resolve(moduleName, entityName).then((entity) => {\n if (!cancelled) {\n this.entityDef.set(entity);\n }\n });\n onCleanup(() => {\n cancelled = true;\n });\n });\n\n effect(() => {\n const ctx = this.rootContext();\n const recordId = typeof ctx?.['id'] === 'string' && ctx['id'].length > 0 ? ctx['id'] : undefined;\n if (!recordId || recordId === this.previousRecordId()) {\n return;\n }\n this.previousRecordId.set(recordId);\n this.localContext.set(null);\n this.isDirty.set(false);\n this.widgetRenderKey.update((key) => key + 1);\n });\n\n effect(() => {\n const field = this.fieldName();\n const node = this.node();\n const renderKey = this.widgetRenderKey();\n if (!node || !field) {\n return;\n }\n void this.wireUploaderWidget(field, renderKey);\n });\n }\n\n context: Signal<Record<string, unknown>> = computed(() => {\n const local = this.localContext();\n if (local != null) {\n return local;\n }\n return this.rootContext() ?? {};\n });\n\n protected fieldName = computed(() => {\n const config = this.pageConfig();\n return config && typeof (config as { field?: string }).field === 'string'\n ? (config as { field: string }).field\n : 'attachments';\n });\n\n protected recordId = computed((): string | undefined => {\n const id = this.rootContext()?.['id'];\n return typeof id === 'string' && id.length > 0 ? id : undefined;\n });\n\n node = computed<AXPWidgetNode | null>(() => {\n const field = this.fieldName();\n const entity = this.entityDef();\n if (!entity?.properties) {\n return null;\n }\n const prop = entity.properties.find((p: { name: string }) => p.name === field);\n if (!prop?.schema?.interface) {\n return null;\n }\n const widget = prop.schema.interface;\n return {\n type: widget.type,\n path: field,\n name: field,\n children: widget.children,\n valueTransforms: widget.valueTransforms,\n options: merge({}, widget.options),\n } as AXPWidgetNode;\n });\n\n protected showAddItemButton = computed(() => {\n const options = this.node()?.options;\n return options?.['showAddItemButton'] !== false;\n });\n\n override async getPrimaryMenuItems(): Promise<AXPLayoutDetailsViewAction[]> {\n const dirty = this.isDirty();\n const saving = this.isSaving();\n\n const uploadActions = this.showAddItemButton() ? [] : await this.buildUploadPrimaryActions();\n\n const saveTitle = (await this.translateService.translateAsync('@general:actions.save.title')) || 'Save';\n const discardTitle = (await this.translateService.translateAsync('@general:actions.discard.title')) || 'Discard';\n\n return [\n ...uploadActions,\n {\n title: discardTitle,\n icon: 'fa-light fa-rotate-left',\n zone: 'footer',\n priority: 'secondary',\n color: 'default',\n visible: dirty,\n disabled: saving,\n command: { name: ATTACHMENTS_PAGE_DISCARD_COMMAND, options: {} },\n },\n {\n title: saveTitle,\n icon: 'fa-light fa-floppy-disk',\n zone: 'footer',\n priority: 'primary',\n color: 'primary',\n visible: dirty,\n disabled: saving,\n command: { name: ATTACHMENTS_PAGE_SAVE_COMMAND, options: {} },\n },\n ];\n }\n\n onContextChanged(event: AXPContextChangeEvent): void {\n if (event.state !== 'changed' || this.isSaving()) {\n return;\n }\n\n const field = this.fieldName();\n const attachments = get(event.data, field);\n const base = this.localContext() ?? this.rootContext() ?? {};\n this.localContext.set({ ...base, [field]: attachments });\n }\n\n override execute(command: AXPExecuteCommand): void | Promise<void> {\n if (command.name === ATTACHMENTS_PAGE_DISCARD_COMMAND) {\n this.handleDiscard();\n return;\n }\n if (command.name === ATTACHMENTS_PAGE_UPLOAD_COMMAND) {\n void this.handleUploadAction(command);\n return;\n }\n if (command.name !== ATTACHMENTS_PAGE_SAVE_COMMAND) {\n return;\n }\n return this.handleSave() as unknown as Promise<void>;\n }\n\n private handleDiscard(): void {\n const field = this.fieldName();\n this.localContext.set(null);\n this.isDirty.set(false);\n this.widgetRenderKey.update((key) => key + 1);\n this.recompute();\n }\n\n private async handleSave(): Promise<AXPExecuteCommandResult> {\n const field = this.fieldName();\n const id = this.recordId();\n const entity = this.entityDef();\n const updateExec = entity?.commands?.update?.execute as\n | ((payload: Record<string, unknown>) => Promise<unknown>)\n | undefined;\n const ctx = this.localContext() ?? this.rootContext() ?? {};\n const attachments = get(ctx, field);\n\n if (!field || !id || !updateExec) {\n return {\n success: false,\n message: {\n text: await this.translateService.translateAsync('@general:messages.entity.invalid-data'),\n },\n };\n }\n\n this.isSaving.set(true);\n this.recompute();\n try {\n await updateExec({ id, [field]: attachments });\n\n const persisted = persistedAttachments(attachments);\n\n // Keep displaying saved attachments; drop soft-deleted rows (onContextChanged is skipped while isSaving).\n this.localContext.set({ ...(this.rootContext() ?? {}), [field]: persisted });\n\n const uploader = await this.getUploaderWidget();\n uploader?.markSaved?.();\n this.isDirty.set(false);\n this.recompute();\n\n this.toastService.show({\n color: 'success',\n title: await this.translateService.translateAsync('@general:messages.generic.success.title'),\n content: await this.translateService.translateAsync('@general:messages.generic.success.description'),\n location: 'bottom-center',\n closeButton: true,\n timeOut: 3000,\n timeOutProgress: true,\n });\n return { success: true };\n } catch {\n this.toastService.show({\n color: 'danger',\n title: await this.translateService.translateAsync('@general:messages.error.title'),\n content: await this.translateService.translateAsync('@general:messages.entity.update-failed'),\n });\n return { success: false };\n } finally {\n this.isSaving.set(false);\n this.recompute();\n }\n }\n\n private async wireUploaderWidget(field: string, renderKey: number): Promise<void> {\n const generation = ++this.widgetWireGeneration;\n const container = this.containerRef();\n if (!container) {\n return;\n }\n\n const widget = await container.find(field);\n if (!widget || generation !== this.widgetWireGeneration) {\n return;\n }\n\n this.dirtySubscription?.unsubscribe();\n const api = (widget as AXPWidgetCoreElement).api() as AttachmentsUploaderApi;\n const savedAttachments = get(this.rootContext(), field);\n api.syncBaseline?.(savedAttachments);\n\n if (api.onDirtyChange instanceof Subject) {\n this.dirtySubscription = api.onDirtyChange.pipe(takeUntilDestroyed(this.destroyRef)).subscribe((dirty) => {\n if (generation !== this.widgetWireGeneration) {\n return;\n }\n this.isDirty.set(dirty);\n this.recompute();\n });\n this.isDirty.set(api.isDirty?.() ?? false);\n this.recompute();\n }\n\n if (api.onUploadActionsChanged instanceof Subject) {\n this.uploadActionsSubscription?.unsubscribe();\n this.uploadActionsSubscription = api.onUploadActionsChanged\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe(() => {\n if (generation !== this.widgetWireGeneration) {\n return;\n }\n this.recompute();\n });\n }\n }\n\n private async buildUploadPrimaryActions(): Promise<AXPLayoutDetailsViewAction[]> {\n const uploader = await this.getUploaderWidget();\n const actions = uploader?.getUploadActions?.() ?? [];\n const readonly = Boolean(this.node()?.options?.['readonly']);\n\n if (readonly || actions.length === 0) {\n return [];\n }\n\n const items: AXPActionMenuItem[] = [];\n for (const action of actions) {\n items.push({\n title: action.textKey ?? action.text ?? action.plugin,\n icon: this.normalizePageDropdownIcon(action.icon),\n command: {\n name: ATTACHMENTS_PAGE_UPLOAD_COMMAND,\n options: { plugin: action.plugin },\n },\n });\n }\n\n return [\n {\n title: '@general:actions.add-item.title',\n icon: 'fa-light fa-plus',\n zone: 'header',\n priority: 'primary',\n color: 'primary',\n items,\n },\n ];\n }\n\n /** Page layout dropdown renders `fa-light {{ icon }}`; strip existing style prefix from widget actions. */\n private normalizePageDropdownIcon(icon?: string): string {\n if (!icon) {\n return 'fa-file-arrow-up';\n }\n return icon.replace(/^(fa-light|fa-solid|fa-regular)\\s+/, '');\n }\n\n private async handleUploadAction(command: AXPExecuteCommand): Promise<void> {\n const plugin = command.options?.['plugin'];\n if (typeof plugin !== 'string' || plugin.length === 0) {\n return;\n }\n const uploader = await this.getUploaderWidget();\n await uploader?.runUploadAction?.(plugin);\n }\n\n private async getUploaderWidget(): Promise<AttachmentsUploaderApi | undefined> {\n const container = this.containerRef();\n if (!container) {\n return undefined;\n }\n const widget = await container.find(this.fieldName());\n if (!widget) {\n return undefined;\n }\n return (widget as AXPWidgetCoreElement).api() as AttachmentsUploaderApi;\n }\n\n protected override recompute(): void {\n super.recompute();\n const maybeLayout = this.hostPageLayout as unknown as { recompute?: () => void };\n maybeLayout?.recompute?.();\n }\n}\n\n//#endregion\n"],"names":["i1"],"mappings":"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"}
@@ -1,31 +0,0 @@
1
- import * as i3 from '@acorex/components/button';
2
- import { AXButtonModule } from '@acorex/components/button';
3
- import { AXPSessionService } from '@acorex/platform/auth';
4
- import * as i1 from '@angular/common';
5
- import { CommonModule } from '@angular/common';
6
- import * as i0 from '@angular/core';
7
- import { inject, Component } from '@angular/core';
8
- import { Router } from '@angular/router';
9
-
10
- class AXPError401Component {
11
- constructor() {
12
- this.sessionService = inject(AXPSessionService);
13
- this.router = inject(Router);
14
- this.isAuthorized$ = this.sessionService.isAuthorized$;
15
- }
16
- handleHomeClick() {
17
- this.router.navigate([`/${this.sessionService.application?.name}/home`]);
18
- }
19
- handleSignInClick() {
20
- this.router.navigate([`/auth/login`]);
21
- }
22
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPError401Component, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
23
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.9", type: AXPError401Component, isStandalone: true, selector: "axp-error-401", ngImport: i0, template: "<div class=\"ax-h-full ax-flex ax-flex-col ax-gap-8 ax-items-center ax-justify-center\">\n <img class=\"ax-w-3/4 md:ax-w-1/2 lg:ax-w-1/3 xl:ax-w-1/4\" src=\"/assets/images/error/error-401.svg\"\n alt=\"Oops! Error 404. No result found.\">\n <div class=\"ax-flex ax-flex-col ax-items-center ax-gap-2 md:ax-gap-4\">\n <h1 class=\"ax-font-bold ax-text-2xl md:ax-text-4xl\">Hold on a second!</h1>\n <p class=\"md:ax-text-lg ax-text-neutral-400\">Sorry, but you are not authorized to view this page.</p>\n </div>\n <div class=\"ax-flex ax-flex-col ax-gap-2 md:ax-gap-4 md:ax-flex-row\">\n @if((isAuthorized$ | async))\n {\n <ax-button (onClick)=\"handleHomeClick()\" class=\"ax-px-4\" color=\"primary\" text=\"Go back to home\"></ax-button>\n } @else {\n <ax-button (onClick)=\"handleSignInClick()\" class=\"ax-px-4\" color=\"primary\" text=\"Sign Up / Sign In\"></ax-button>\n }\n <ax-button class=\"ax-px-4\" [color]=\"'default'\" text=\"Contact us\"></ax-button>\n </div>\n</div>", dependencies: [{ kind: "ngmodule", type: AXButtonModule }, { kind: "component", type: i3.AXButtonComponent, selector: "ax-button", inputs: ["disabled", "size", "tabIndex", "color", "look", "text", "toggleable", "selected", "iconOnly", "type", "loadingText"], outputs: ["onBlur", "onFocus", "onClick", "selectedChange", "toggleableChange", "lookChange", "colorChange", "disabledChange", "loadingTextChange"] }, { kind: "ngmodule", type: CommonModule }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }] }); }
24
- }
25
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPError401Component, decorators: [{
26
- type: Component,
27
- args: [{ selector: 'axp-error-401', imports: [AXButtonModule, CommonModule], template: "<div class=\"ax-h-full ax-flex ax-flex-col ax-gap-8 ax-items-center ax-justify-center\">\n <img class=\"ax-w-3/4 md:ax-w-1/2 lg:ax-w-1/3 xl:ax-w-1/4\" src=\"/assets/images/error/error-401.svg\"\n alt=\"Oops! Error 404. No result found.\">\n <div class=\"ax-flex ax-flex-col ax-items-center ax-gap-2 md:ax-gap-4\">\n <h1 class=\"ax-font-bold ax-text-2xl md:ax-text-4xl\">Hold on a second!</h1>\n <p class=\"md:ax-text-lg ax-text-neutral-400\">Sorry, but you are not authorized to view this page.</p>\n </div>\n <div class=\"ax-flex ax-flex-col ax-gap-2 md:ax-gap-4 md:ax-flex-row\">\n @if((isAuthorized$ | async))\n {\n <ax-button (onClick)=\"handleHomeClick()\" class=\"ax-px-4\" color=\"primary\" text=\"Go back to home\"></ax-button>\n } @else {\n <ax-button (onClick)=\"handleSignInClick()\" class=\"ax-px-4\" color=\"primary\" text=\"Sign Up / Sign In\"></ax-button>\n }\n <ax-button class=\"ax-px-4\" [color]=\"'default'\" text=\"Contact us\"></ax-button>\n </div>\n</div>" }]
28
- }] });
29
-
30
- export { AXPError401Component };
31
- //# sourceMappingURL=acorex-platform-themes-default-error-401.component-C7EYJzSr.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"acorex-platform-themes-default-error-401.component-C7EYJzSr.mjs","sources":["../../../../libs/platform/themes/default/src/lib/pages/errors/error-401/error-401.component.ts","../../../../libs/platform/themes/default/src/lib/pages/errors/error-401/error-401.component.html"],"sourcesContent":["import { AXButtonModule } from '@acorex/components/button';\nimport { AXPSessionService } from '@acorex/platform/auth';\nimport { CommonModule } from '@angular/common';\n\nimport { Component, OnInit, inject } from '@angular/core';\nimport { Router } from '@angular/router';\n\n@Component({\n selector: 'axp-error-401',\n templateUrl: './error-401.component.html',\n imports: [AXButtonModule, CommonModule]\n})\nexport class AXPError401Component {\n\n private sessionService = inject(AXPSessionService);\n private router = inject(Router);\n protected isAuthorized$ = this.sessionService.isAuthorized$;\n\n protected handleHomeClick() {\n this.router.navigate([`/${this.sessionService.application?.name}/home`]);\n }\n\n protected handleSignInClick() {\n this.router.navigate([`/auth/login`]);\n }\n}\n","<div class=\"ax-h-full ax-flex ax-flex-col ax-gap-8 ax-items-center ax-justify-center\">\n <img class=\"ax-w-3/4 md:ax-w-1/2 lg:ax-w-1/3 xl:ax-w-1/4\" src=\"/assets/images/error/error-401.svg\"\n alt=\"Oops! Error 404. No result found.\">\n <div class=\"ax-flex ax-flex-col ax-items-center ax-gap-2 md:ax-gap-4\">\n <h1 class=\"ax-font-bold ax-text-2xl md:ax-text-4xl\">Hold on a second!</h1>\n <p class=\"md:ax-text-lg ax-text-neutral-400\">Sorry, but you are not authorized to view this page.</p>\n </div>\n <div class=\"ax-flex ax-flex-col ax-gap-2 md:ax-gap-4 md:ax-flex-row\">\n @if((isAuthorized$ | async))\n {\n <ax-button (onClick)=\"handleHomeClick()\" class=\"ax-px-4\" color=\"primary\" text=\"Go back to home\"></ax-button>\n } @else {\n <ax-button (onClick)=\"handleSignInClick()\" class=\"ax-px-4\" color=\"primary\" text=\"Sign Up / Sign In\"></ax-button>\n }\n <ax-button class=\"ax-px-4\" [color]=\"'default'\" text=\"Contact us\"></ax-button>\n </div>\n</div>"],"names":["i2"],"mappings":";;;;;;;;;MAYa,oBAAoB,CAAA;AALjC,IAAA,WAAA,GAAA;AAOU,QAAA,IAAA,CAAA,cAAc,GAAG,MAAM,CAAC,iBAAiB,CAAC;AAC1C,QAAA,IAAA,CAAA,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;AACrB,QAAA,IAAA,CAAA,aAAa,GAAG,IAAI,CAAC,cAAc,CAAC,aAAa;AAS5D,IAAA;IAPW,eAAe,GAAA;AACvB,QAAA,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAA,CAAA,EAAI,IAAI,CAAC,cAAc,CAAC,WAAW,EAAE,IAAI,CAAA,KAAA,CAAO,CAAC,CAAC;IAC1E;IAEU,iBAAiB,GAAA;QACzB,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAA,WAAA,CAAa,CAAC,CAAC;IACvC;8GAZW,oBAAoB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAApB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,oBAAoB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,eAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECZjC,wiCAgBM,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EDNQ,cAAc,6XAAE,YAAY,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,SAAA,EAAA,IAAA,EAAA,OAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;2FAE7B,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBALhC,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,eAAe,EAAA,OAAA,EAEhB,CAAC,cAAc,EAAE,YAAY,CAAC,EAAA,QAAA,EAAA,wiCAAA,EAAA;;;;;"}