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

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 (32) hide show
  1. package/fesm2022/acorex-platform-common.mjs +11 -0
  2. package/fesm2022/acorex-platform-common.mjs.map +1 -1
  3. package/fesm2022/acorex-platform-core.mjs +332 -76
  4. package/fesm2022/acorex-platform-core.mjs.map +1 -1
  5. package/fesm2022/acorex-platform-layout-builder.mjs +563 -44
  6. package/fesm2022/acorex-platform-layout-builder.mjs.map +1 -1
  7. package/fesm2022/acorex-platform-layout-components.mjs +83 -67
  8. package/fesm2022/acorex-platform-layout-components.mjs.map +1 -1
  9. package/fesm2022/acorex-platform-layout-entity.mjs +543 -237
  10. package/fesm2022/acorex-platform-layout-entity.mjs.map +1 -1
  11. package/fesm2022/acorex-platform-layout-views.mjs +319 -66
  12. package/fesm2022/acorex-platform-layout-views.mjs.map +1 -1
  13. package/fesm2022/acorex-platform-layout-widget-core.mjs +54 -6
  14. package/fesm2022/acorex-platform-layout-widget-core.mjs.map +1 -1
  15. package/fesm2022/acorex-platform-layout-widgets.mjs +198 -91
  16. package/fesm2022/acorex-platform-layout-widgets.mjs.map +1 -1
  17. package/fesm2022/acorex-platform-themes-default.mjs +13 -14
  18. package/fesm2022/acorex-platform-themes-default.mjs.map +1 -1
  19. package/fesm2022/acorex-platform-themes-shared.mjs +50 -30
  20. package/fesm2022/acorex-platform-themes-shared.mjs.map +1 -1
  21. package/package.json +1 -1
  22. package/types/acorex-platform-common.d.ts +11 -0
  23. package/types/acorex-platform-core.d.ts +137 -47
  24. package/types/acorex-platform-layout-builder.d.ts +90 -13
  25. package/types/acorex-platform-layout-components.d.ts +21 -17
  26. package/types/acorex-platform-layout-entity.d.ts +63 -10
  27. package/types/acorex-platform-layout-views.d.ts +68 -6
  28. package/types/acorex-platform-layout-widget-core.d.ts +43 -8
  29. package/types/acorex-platform-layout-widgets.d.ts +21 -6
  30. package/types/acorex-platform-themes-default.d.ts +24 -4
  31. package/types/acorex-platform-themes-shared.d.ts +6 -0
  32. package/types/acorex-platform-workflow.d.ts +1 -1
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@acorex/platform",
3
- "version": "21.0.0-next.70",
3
+ "version": "21.0.0-next.71",
4
4
  "peerDependencies": {
5
5
  "@acorex/cdk": "^19.0.0 || ^20.0.0 || ^21.0.0-next.0 || ^21.0.2-next.0",
6
6
  "@acorex/core": "^19.0.0 || ^20.0.0 || ^21.0.0-next.0 || ^21.0.2-next.0",
@@ -2642,6 +2642,7 @@ declare enum AXPSystemStatusType {
2642
2642
  Draft = "draft",
2643
2643
  PendingReview = "pending-review",
2644
2644
  WaitingSignOff = "waiting-sign-off",
2645
+ WaitingApproval = "waiting-approval",
2645
2646
  Approved = "approved",
2646
2647
  Published = "published",
2647
2648
  Archived = "archived",
@@ -2771,6 +2772,16 @@ declare const AXPSystemStatuses: Readonly<{
2771
2772
  readonly isInitial: false;
2772
2773
  readonly isFinal: false;
2773
2774
  };
2775
+ readonly WaitingApproval: {
2776
+ readonly name: AXPSystemStatusType.WaitingApproval;
2777
+ readonly title: string;
2778
+ readonly icon: "fa-light fa-clock";
2779
+ readonly color: "warning";
2780
+ readonly description: string;
2781
+ readonly order: 1;
2782
+ readonly isInitial: true;
2783
+ readonly isFinal: false;
2784
+ };
2774
2785
  readonly Approved: {
2775
2786
  readonly name: AXPSystemStatusType.Approved;
2776
2787
  readonly title: string;
@@ -1566,6 +1566,104 @@ declare class AXPActivityLogService {
1566
1566
  static ɵprov: i0.ɵɵInjectableDeclaration<AXPActivityLogService>;
1567
1567
  }
1568
1568
 
1569
+ /**
1570
+ * Stable catalog scope registered by a module provider (integration contract).
1571
+ */
1572
+ interface AXPCatalogScopeDefinition {
1573
+ /** Unique key, e.g. `human-capital-management.hr`. */
1574
+ name: string;
1575
+ title: string | AXPMultiLanguageString;
1576
+ description?: string | AXPMultiLanguageString;
1577
+ /**
1578
+ * Entity refs this scope may label, e.g. `AssessmentManagement.Questionnaire`.
1579
+ */
1580
+ targets: string[];
1581
+ icon?: string;
1582
+ /**
1583
+ * Platform utility classes applied to the whole scope badge (surface, on-surface, border).
1584
+ * Example: `ax-primary-surface ax-text-on-primary-surface ax-border-border-primary-surface`.
1585
+ */
1586
+ cssClass?: string;
1587
+ order?: number;
1588
+ }
1589
+
1590
+ interface AXPCatalogScopeDefinitionProvider {
1591
+ items(): Promise<AXPCatalogScopeDefinition[]>;
1592
+ }
1593
+ declare const AXP_CATALOG_SCOPE_DEFINITION_PROVIDER: InjectionToken<AXPCatalogScopeDefinitionProvider[]>;
1594
+
1595
+ /**
1596
+ * Collects {@link AXPCatalogScopeDefinition} entries from all registered providers.
1597
+ */
1598
+ declare class AXPCatalogScopeDefinitionProviderService {
1599
+ private readonly providers;
1600
+ private readonly translation;
1601
+ items(): Promise<AXPCatalogScopeDefinition[]>;
1602
+ get(name: string): Promise<AXPCatalogScopeDefinition | undefined>;
1603
+ /**
1604
+ * Scopes applicable to the given entity ref (`Module.Entity`).
1605
+ */
1606
+ byTarget(entityRef: string): Promise<AXPCatalogScopeDefinition[]>;
1607
+ /**
1608
+ * Resolves display title for a scope key (active locale).
1609
+ */
1610
+ resolveTitle(definition: AXPCatalogScopeDefinition): string;
1611
+ static ɵfac: i0.ɵɵFactoryDeclaration<AXPCatalogScopeDefinitionProviderService, never>;
1612
+ static ɵprov: i0.ɵɵInjectableDeclaration<AXPCatalogScopeDefinitionProviderService>;
1613
+ }
1614
+
1615
+ interface AXPDataSourceDataFieldDefinition {
1616
+ name: string;
1617
+ title: string;
1618
+ datatype: string;
1619
+ type: string;
1620
+ options?: AXPOptionsData;
1621
+ }
1622
+ type AXPLazyDataSource<T = unknown> = AXPMaybePromise<AXDataSource<T>>;
1623
+ type AXPDataSourceArray<T = unknown> = AXPMaybePromise<Array<T>>;
1624
+ type AXPDataSourceValue<T = unknown> = AXPMaybePromise<T>;
1625
+ type AXPDataSourceType<T = any> = AXPLazyDataSource<T> | AXPDataSourceArray<T> | AXPDataSourceValue<T>;
1626
+ type AXPDataSourceSample<T = any> = AXPDataSourceArray<T> | AXPDataSourceValue<T>;
1627
+ interface AXPDataSourceDefinition<T = any> {
1628
+ name: string;
1629
+ title: string;
1630
+ valueField?: {
1631
+ name: string;
1632
+ title: string;
1633
+ };
1634
+ textField?: {
1635
+ name: string;
1636
+ title: string;
1637
+ };
1638
+ columns: AXPDataSourceDataFieldDefinition[];
1639
+ filters: AXPFilterDefinition[];
1640
+ samples?: AXPDataSourceSample<T>;
1641
+ visible?: boolean;
1642
+ source: () => AXPDataSourceType<T>;
1643
+ }
1644
+ interface AXPDataSourceDefinitionProvider {
1645
+ items(): Promise<AXPDataSourceDefinition[]>;
1646
+ }
1647
+ declare const AXP_DATASOURCE_DEFINITION_PROVIDER: InjectionToken<AXPDataSourceDefinitionProvider[]>;
1648
+ declare class AXPDataSourceDefinitionProviderService implements AXPDataSourceDefinitionProvider {
1649
+ private providers;
1650
+ items(): Promise<AXPDataSourceDefinition[]>;
1651
+ get<T = any>(name: string): Promise<AXPDataSourceDefinition<T> | undefined>;
1652
+ static ɵfac: i0.ɵɵFactoryDeclaration<AXPDataSourceDefinitionProviderService, never>;
1653
+ static ɵprov: i0.ɵɵInjectableDeclaration<AXPDataSourceDefinitionProviderService>;
1654
+ }
1655
+
1656
+ /** Data source name for select widgets listing registered catalog scopes. */
1657
+ declare const PLATFORM_CATALOG_SCOPES_DATASOURCE_NAME = "platform-catalog-scopes";
1658
+ /**
1659
+ * Registered catalog scopes for select / selection-list widgets via {@link PLATFORM_CATALOG_SCOPES_DATASOURCE_NAME}.
1660
+ */
1661
+ declare class AXPCatalogScopeDefinitionsDataSourceDefinition implements AXPDataSourceDefinitionProvider {
1662
+ private readonly catalogScopeRegistry;
1663
+ items(): Promise<AXPDataSourceDefinition[]>;
1664
+ private readTargetFilter;
1665
+ }
1666
+
1569
1667
  /**
1570
1668
  * Represents a color palette with a unique identifier and collection of colors
1571
1669
  */
@@ -1851,6 +1949,14 @@ declare const AXP_COLUMN_WIDTH_PROVIDER: InjectionToken<AXPColumnWidthProvider[]
1851
1949
  declare const defaultColumnWidthProvider: AXPColumnWidthProvider;
1852
1950
 
1853
1951
  type AXPContextState = 'initiated' | 'restored' | 'changed' | 'patch';
1952
+ type AXPContextUpdateOrigin = 'user' | 'system';
1953
+ interface AXPContextUpdateOptions {
1954
+ origin?: AXPContextUpdateOrigin;
1955
+ }
1956
+ interface AXPContextPatchOptions {
1957
+ skipDirtyTracking?: boolean;
1958
+ origin?: AXPContextUpdateOrigin;
1959
+ }
1854
1960
  type AXPContextData = {
1855
1961
  [key: string]: any;
1856
1962
  };
@@ -1860,33 +1966,42 @@ declare class AXPContextChangeEvent {
1860
1966
  path?: string;
1861
1967
  state: AXPContextState;
1862
1968
  data: any;
1969
+ origin?: AXPContextUpdateOrigin;
1970
+ /** Aggregated form dirty flag (user context paths + composite widget dirty). */
1971
+ isFormDirty?: boolean;
1863
1972
  }
1864
1973
  declare const AXPContextStore: i0.Type<{
1865
1974
  data: i0.Signal<AXPContextData>;
1866
1975
  state: i0.Signal<AXPContextState>;
1867
1976
  initialSnapshot: i0.Signal<{}>;
1868
1977
  previousSnapshot: i0.Signal<{}>;
1978
+ userDirtyPaths: i0.Signal<string[]>;
1869
1979
  lastChange: _ngrx_signals.DeepSignal<AXPContextChangeEvent>;
1870
1980
  isChanged: i0.Signal<boolean>;
1871
1981
  isReset: i0.Signal<boolean>;
1872
1982
  isInitiated: i0.Signal<boolean>;
1873
1983
  isEmpty: i0.Signal<boolean>;
1874
1984
  isDirty: i0.Signal<boolean>;
1985
+ isUserDirty: i0.Signal<boolean>;
1875
1986
  snapshot: i0.Signal<AXPContextData>;
1876
1987
  initial: i0.Signal<{}>;
1877
1988
  previous: i0.Signal<{}>;
1878
1989
  changeEvent: i0.Signal<AXPContextChangeEvent>;
1879
- update: (path: string, value: any) => void;
1880
- patch: (context: Record<string, any>, skipDirtyTracking?: boolean) => void;
1990
+ update: (path: string, value: any, options?: AXPContextUpdateOptions) => void;
1991
+ applyObjectPaths: (obj: Record<string, unknown>, options?: AXPContextUpdateOptions, prefix?: string) => void;
1992
+ patch: (context: Record<string, any>, second?: boolean | AXPContextPatchOptions) => void;
1881
1993
  reset: () => void;
1882
1994
  set: (initialData: any) => void;
1883
1995
  getValue: (path: string) => any;
1884
1996
  hasValue: (path: string) => boolean;
1997
+ commitBaseline: () => void;
1998
+ clearUserDirtyPaths: () => void;
1885
1999
  } & _ngrx_signals.StateSource<{
1886
2000
  data: AXPContextData;
1887
2001
  state: AXPContextState;
1888
2002
  initialSnapshot: {};
1889
2003
  previousSnapshot: {};
2004
+ userDirtyPaths: string[];
1890
2005
  lastChange: AXPContextChangeEvent;
1891
2006
  }>>;
1892
2007
 
@@ -1922,27 +2037,33 @@ declare class AXPComponentSlotDirective implements OnInit {
1922
2037
  state: i0.Signal<_acorex_platform_core.AXPContextState>;
1923
2038
  initialSnapshot: i0.Signal<{}>;
1924
2039
  previousSnapshot: i0.Signal<{}>;
2040
+ userDirtyPaths: i0.Signal<string[]>;
1925
2041
  lastChange: _ngrx_signals.DeepSignal<_acorex_platform_core.AXPContextChangeEvent>;
1926
2042
  isChanged: i0.Signal<boolean>;
1927
2043
  isReset: i0.Signal<boolean>;
1928
2044
  isInitiated: i0.Signal<boolean>;
1929
2045
  isEmpty: i0.Signal<boolean>;
1930
2046
  isDirty: i0.Signal<boolean>;
2047
+ isUserDirty: i0.Signal<boolean>;
1931
2048
  snapshot: i0.Signal<AXPContextData>;
1932
2049
  initial: i0.Signal<{}>;
1933
2050
  previous: i0.Signal<{}>;
1934
2051
  changeEvent: i0.Signal<_acorex_platform_core.AXPContextChangeEvent>;
1935
- update: (path: string, value: any) => void;
1936
- patch: (context: Record<string, any>, skipDirtyTracking?: boolean) => void;
2052
+ update: (path: string, value: any, options?: _acorex_platform_core.AXPContextUpdateOptions) => void;
2053
+ applyObjectPaths: (obj: Record<string, unknown>, options?: _acorex_platform_core.AXPContextUpdateOptions, prefix?: string) => void;
2054
+ patch: (context: Record<string, any>, second?: boolean | _acorex_platform_core.AXPContextPatchOptions) => void;
1937
2055
  reset: () => void;
1938
2056
  set: (initialData: any) => void;
1939
2057
  getValue: (path: string) => any;
1940
2058
  hasValue: (path: string) => boolean;
2059
+ commitBaseline: () => void;
2060
+ clearUserDirtyPaths: () => void;
1941
2061
  } & _ngrx_signals.StateSource<{
1942
2062
  data: AXPContextData;
1943
2063
  state: _acorex_platform_core.AXPContextState;
1944
2064
  initialSnapshot: {};
1945
2065
  previousSnapshot: {};
2066
+ userDirtyPaths: string[];
1946
2067
  lastChange: _acorex_platform_core.AXPContextChangeEvent;
1947
2068
  }>;
1948
2069
  isEmpty: i0.Signal<boolean>;
@@ -2074,47 +2195,6 @@ type AXPValueTransformerFunctions = {
2074
2195
  };
2075
2196
  declare function objectKeyValueTransforms(keyName: string): AXPValueTransformerFunctions;
2076
2197
 
2077
- interface AXPDataSourceDataFieldDefinition {
2078
- name: string;
2079
- title: string;
2080
- datatype: string;
2081
- type: string;
2082
- options?: AXPOptionsData;
2083
- }
2084
- type AXPLazyDataSource<T = unknown> = AXPMaybePromise<AXDataSource<T>>;
2085
- type AXPDataSourceArray<T = unknown> = AXPMaybePromise<Array<T>>;
2086
- type AXPDataSourceValue<T = unknown> = AXPMaybePromise<T>;
2087
- type AXPDataSourceType<T = any> = AXPLazyDataSource<T> | AXPDataSourceArray<T> | AXPDataSourceValue<T>;
2088
- type AXPDataSourceSample<T = any> = AXPDataSourceArray<T> | AXPDataSourceValue<T>;
2089
- interface AXPDataSourceDefinition<T = any> {
2090
- name: string;
2091
- title: string;
2092
- valueField?: {
2093
- name: string;
2094
- title: string;
2095
- };
2096
- textField?: {
2097
- name: string;
2098
- title: string;
2099
- };
2100
- columns: AXPDataSourceDataFieldDefinition[];
2101
- filters: AXPFilterDefinition[];
2102
- samples?: AXPDataSourceSample<T>;
2103
- visible?: boolean;
2104
- source: () => AXPDataSourceType<T>;
2105
- }
2106
- interface AXPDataSourceDefinitionProvider {
2107
- items(): Promise<AXPDataSourceDefinition[]>;
2108
- }
2109
- declare const AXP_DATASOURCE_DEFINITION_PROVIDER: InjectionToken<AXPDataSourceDefinitionProvider[]>;
2110
- declare class AXPDataSourceDefinitionProviderService implements AXPDataSourceDefinitionProvider {
2111
- private providers;
2112
- items(): Promise<AXPDataSourceDefinition[]>;
2113
- get<T = any>(name: string): Promise<AXPDataSourceDefinition<T> | undefined>;
2114
- static ɵfac: i0.ɵɵFactoryDeclaration<AXPDataSourceDefinitionProviderService, never>;
2115
- static ɵprov: i0.ɵɵInjectableDeclaration<AXPDataSourceDefinitionProviderService>;
2116
- }
2117
-
2118
2198
  declare class AXPContentCheckerDirective {
2119
2199
  viewContainerRef: ViewContainerRef;
2120
2200
  elementRef: ElementRef<HTMLDivElement>;
@@ -2829,6 +2909,16 @@ declare class AXPDeviceService {
2829
2909
  static ɵprov: i0.ɵɵInjectableDeclaration<AXPDeviceService>;
2830
2910
  }
2831
2911
 
2912
+ /**
2913
+ * Returns whether `current` differs from the saved/clean `baseline` snapshot.
2914
+ * Used by entity details pages, layout-builder dialogs, and {@link AXPContextStore}.
2915
+ */
2916
+ declare function isFormContextDirty(current: Record<string, unknown>, baseline: Record<string, unknown>): boolean;
2917
+ /**
2918
+ * Clones a context object for use as a dirty-tracking baseline.
2919
+ */
2920
+ declare function captureFormContextBaseline(context: Record<string, unknown>): Record<string, unknown>;
2921
+
2832
2922
  /**
2833
2923
  * Service for applying and resetting text highlighting within specified HTML elements.
2834
2924
  */
@@ -2963,5 +3053,5 @@ declare function containsHtmlMarkup(value: string | null | undefined): boolean;
2963
3053
  */
2964
3054
  declare function generateKebabCase(title: string): string;
2965
3055
 
2966
- export { AXHighlightService, AXPActivityLogProvider, AXPActivityLogService, AXPAppStartUpProvider, AXPAppStartUpService, AXPBroadcastEventService, AXPColorPaletteProvider, AXPColorPaletteService, AXPColumnWidthService, AXPComponentLogoConfig, AXPComponentSlot, AXPComponentSlotDirective, AXPComponentSlotModule, AXPComponentSlotRegistryService, AXPContentCheckerDirective, AXPContextChangeEvent, AXPContextDefinitionProviderService, AXPContextStore, AXPCountdownPipe, AXPDataGenerator, AXPDataSourceDefinitionProviderService, AXPDblClickDirective, AXPDefaultColorPalettesProvider, AXPDeviceService, AXPDeviceType, AXPDistributedEventListenerService, AXPElementDataDirective, AXPExportTemplateToken, AXPExpressionEvaluatorScopeProviderContext, AXPExpressionEvaluatorScopeProviderService, AXPExpressionEvaluatorService, AXPFeatureDefinitionProviderContext, AXPGridLayoutDirective, AXPHookService, AXPIconLogoConfig, AXPImageUrlLogoConfig, AXPModuleManifestModule, AXPModuleManifestRegistry, AXPModuleManifestsDataSourceDefinition, AXPPlatformScope, AXPScreenSize, AXPSystemActionType, AXPSystemActions, AXPTagProvider, AXPTagService, AXP_ACTIVITY_LOG_PROVIDER, AXP_COLOR_PALETTE_PROVIDER, AXP_COLUMN_WIDTH_PROVIDER, AXP_CONTEXT_DEFINITION_PROVIDER, AXP_DATASOURCE_DEFINITION_PROVIDER, AXP_DISTRIBUTED_EVENT_LISTENER_PROVIDER, AXP_EXPRESSION_EVALUATOR_SCOPE_PROVIDER, AXP_FEATURE_DEFINITION_PROVIDER, AXP_MODULE_MANIFEST_PROVIDER, AXP_SESSION_SERVICE, AXP_TAG_PROVIDER, MODULE_MANIFESTS_DATASOURCE_NAME, applyFilterArray, applyPagination, applyQueryArray, applySortArray, applySystemActionDefault, cleanDeep, coerceUnknownToBoolean, coerceUnknownToDate, coerceUnknownToFiniteNumber, coerceUnknownToTrimmedString, compareMultiLanguageStrings, containsHtmlMarkup, createProviderWithInjectionContext, defaultColumnWidthProvider, extractNestedFieldsWildcard, extractTextFromHtml, extractValue, generateKebabCase, getActionButton, getChangedPaths, getDetailedChanges, getEnumValues, getNestedKeys, getSmart, getSystemActions, normalizeDefinitionCategories, objectKeyValueTransforms, provideLazyProvider, resolveActionLook, resolvePlatformScopeKey, resolvePlatformScopeName, searchInMultiLanguageString, setSmart, sortByMultiLanguageString, unwrapValueProperty };
2967
- export type { AXPActionMenuItem, AXPActivityLog, AXPActivityLogChange, AXPApplicationUserReference, AXPBackButton, AXPBadge, AXPBreadcrumbItem, AXPCategorizedEntity, AXPCategorizedEntityDto, AXPCategoryEntity, AXPCategoryEntityWithItems, AXPCategoryListItem, AXPColorPalette, AXPColorPaletteFilterOptions, AXPColumnQuery, AXPColumnWidthMatcher, AXPColumnWidthProvider, AXPCommandMessage, AXPComponentSlotConfig, AXPComponentSlotModuleConfigs, AXPContent, AXPContentDirection, AXPContentType, AXPContextData, AXPContextDefinition, AXPContextDefinitionAiHints, AXPContextDefinitionProvider, AXPContextState, AXPDataSource, AXPDataSourceArray, AXPDataSourceDataFieldDefinition, AXPDataSourceDefinition, AXPDataSourceDefinitionProvider, AXPDataSourceSample, AXPDataSourceType, AXPDataSourceValue, AXPDataType, AXPDefinitionCategory, AXPDistributedEventListenerProvider, AXPDistributedEventListenerProviderToken, AXPEntityOp, AXPEntityReference, AXPEqualValidationRule, AXPExecuteCommand, AXPExecuteCommandResult, AXPExportCsvOptions, AXPExportExcelOptions, AXPExportOptions, AXPExportPdfOptions, AXPExportPrintOptions, AXPExpression, AXPExpressionEvaluatorScope, AXPExpressionEvaluatorScopeProvider, AXPExpressionEvaluatorScopeProviders, AXPFeatureDefinition, AXPFeatureDefinitionProvider, AXPFeatureName, AXPFileListItem, AXPFileSource, AXPFileStatus, AXPFilterClause, AXPFilterDefinition, AXPFilterQuery, AXPFilterTriggerDefinition, AXPFlowDirection, AXPGridLayoutOptions, AXPGridPlacement, AXPISessionService, AXPLazyDataSource, AXPLogoConfig, AXPMaxLengthValidationRule, AXPMaybePromise, AXPMetaData, AXPMiddlewareErrorResponse, AXPMinLengthValidationRule, AXPModuleFeatureDefinition, AXPModuleFeatureDefinitionWithKey, AXPModuleManifest, AXPMultiLanguageString, AXPNavigateActionCommand, AXPNavigateActionOptions, AXPOptionsData, AXPPageStatus, AXPPagedListResult, AXPPartialNested, AXPPlatformScopeKey, AXPProperty, AXPPropertyGroup, AXPPropertyInterface, AXPQueryFetchResult, AXPQueryRequest, AXPReqexValidationRule, AXPRequiredValidationRule, AXPSortDefinition, AXPSortQuery, AXPStartUpTask, AXPStringValidationRules, AXPSystemAction, AXPTag, AXPTagFilterOptions, AXPUserReference, AXPValidationRule, AXPValidationRules, AXPValueTransformerFunction, AXPValueTransformerFunctions, AXPValueUnit, AXPValueUnits, AXPViewBlockDefinition, AXPViewDefinition, AXPViewFieldDefinition, AXPViewQuery, AXPWidgetTrigger, AXPWidgetTriggers, ColumnNameMatcher, ColumnWidthValue, IColumnWithWidth, WidgetTypeMatcher };
3056
+ export { AXHighlightService, AXPActivityLogProvider, AXPActivityLogService, AXPAppStartUpProvider, AXPAppStartUpService, AXPBroadcastEventService, AXPCatalogScopeDefinitionProviderService, AXPCatalogScopeDefinitionsDataSourceDefinition, AXPColorPaletteProvider, AXPColorPaletteService, AXPColumnWidthService, AXPComponentLogoConfig, AXPComponentSlot, AXPComponentSlotDirective, AXPComponentSlotModule, AXPComponentSlotRegistryService, AXPContentCheckerDirective, AXPContextChangeEvent, AXPContextDefinitionProviderService, AXPContextStore, AXPCountdownPipe, AXPDataGenerator, AXPDataSourceDefinitionProviderService, AXPDblClickDirective, AXPDefaultColorPalettesProvider, AXPDeviceService, AXPDeviceType, AXPDistributedEventListenerService, AXPElementDataDirective, AXPExportTemplateToken, AXPExpressionEvaluatorScopeProviderContext, AXPExpressionEvaluatorScopeProviderService, AXPExpressionEvaluatorService, AXPFeatureDefinitionProviderContext, AXPGridLayoutDirective, AXPHookService, AXPIconLogoConfig, AXPImageUrlLogoConfig, AXPModuleManifestModule, AXPModuleManifestRegistry, AXPModuleManifestsDataSourceDefinition, AXPPlatformScope, AXPScreenSize, AXPSystemActionType, AXPSystemActions, AXPTagProvider, AXPTagService, AXP_ACTIVITY_LOG_PROVIDER, AXP_CATALOG_SCOPE_DEFINITION_PROVIDER, AXP_COLOR_PALETTE_PROVIDER, AXP_COLUMN_WIDTH_PROVIDER, AXP_CONTEXT_DEFINITION_PROVIDER, AXP_DATASOURCE_DEFINITION_PROVIDER, AXP_DISTRIBUTED_EVENT_LISTENER_PROVIDER, AXP_EXPRESSION_EVALUATOR_SCOPE_PROVIDER, AXP_FEATURE_DEFINITION_PROVIDER, AXP_MODULE_MANIFEST_PROVIDER, AXP_SESSION_SERVICE, AXP_TAG_PROVIDER, MODULE_MANIFESTS_DATASOURCE_NAME, PLATFORM_CATALOG_SCOPES_DATASOURCE_NAME, applyFilterArray, applyPagination, applyQueryArray, applySortArray, applySystemActionDefault, captureFormContextBaseline, cleanDeep, coerceUnknownToBoolean, coerceUnknownToDate, coerceUnknownToFiniteNumber, coerceUnknownToTrimmedString, compareMultiLanguageStrings, containsHtmlMarkup, createProviderWithInjectionContext, defaultColumnWidthProvider, extractNestedFieldsWildcard, extractTextFromHtml, extractValue, generateKebabCase, getActionButton, getChangedPaths, getDetailedChanges, getEnumValues, getNestedKeys, getSmart, getSystemActions, isFormContextDirty, normalizeDefinitionCategories, objectKeyValueTransforms, provideLazyProvider, resolveActionLook, resolvePlatformScopeKey, resolvePlatformScopeName, searchInMultiLanguageString, setSmart, sortByMultiLanguageString, unwrapValueProperty };
3057
+ export type { AXPActionMenuItem, AXPActivityLog, AXPActivityLogChange, AXPApplicationUserReference, AXPBackButton, AXPBadge, AXPBreadcrumbItem, AXPCatalogScopeDefinition, AXPCatalogScopeDefinitionProvider, AXPCategorizedEntity, AXPCategorizedEntityDto, AXPCategoryEntity, AXPCategoryEntityWithItems, AXPCategoryListItem, AXPColorPalette, AXPColorPaletteFilterOptions, AXPColumnQuery, AXPColumnWidthMatcher, AXPColumnWidthProvider, AXPCommandMessage, AXPComponentSlotConfig, AXPComponentSlotModuleConfigs, AXPContent, AXPContentDirection, AXPContentType, AXPContextData, AXPContextDefinition, AXPContextDefinitionAiHints, AXPContextDefinitionProvider, AXPContextPatchOptions, AXPContextState, AXPContextUpdateOptions, AXPContextUpdateOrigin, AXPDataSource, AXPDataSourceArray, AXPDataSourceDataFieldDefinition, AXPDataSourceDefinition, AXPDataSourceDefinitionProvider, AXPDataSourceSample, AXPDataSourceType, AXPDataSourceValue, AXPDataType, AXPDefinitionCategory, AXPDistributedEventListenerProvider, AXPDistributedEventListenerProviderToken, AXPEntityOp, AXPEntityReference, AXPEqualValidationRule, AXPExecuteCommand, AXPExecuteCommandResult, AXPExportCsvOptions, AXPExportExcelOptions, AXPExportOptions, AXPExportPdfOptions, AXPExportPrintOptions, AXPExpression, AXPExpressionEvaluatorScope, AXPExpressionEvaluatorScopeProvider, AXPExpressionEvaluatorScopeProviders, AXPFeatureDefinition, AXPFeatureDefinitionProvider, AXPFeatureName, AXPFileListItem, AXPFileSource, AXPFileStatus, AXPFilterClause, AXPFilterDefinition, AXPFilterQuery, AXPFilterTriggerDefinition, AXPFlowDirection, AXPGridLayoutOptions, AXPGridPlacement, AXPISessionService, AXPLazyDataSource, AXPLogoConfig, AXPMaxLengthValidationRule, AXPMaybePromise, AXPMetaData, AXPMiddlewareErrorResponse, AXPMinLengthValidationRule, AXPModuleFeatureDefinition, AXPModuleFeatureDefinitionWithKey, AXPModuleManifest, AXPMultiLanguageString, AXPNavigateActionCommand, AXPNavigateActionOptions, AXPOptionsData, AXPPageStatus, AXPPagedListResult, AXPPartialNested, AXPPlatformScopeKey, AXPProperty, AXPPropertyGroup, AXPPropertyInterface, AXPQueryFetchResult, AXPQueryRequest, AXPReqexValidationRule, AXPRequiredValidationRule, AXPSortDefinition, AXPSortQuery, AXPStartUpTask, AXPStringValidationRules, AXPSystemAction, AXPTag, AXPTagFilterOptions, AXPUserReference, AXPValidationRule, AXPValidationRules, AXPValueTransformerFunction, AXPValueTransformerFunctions, AXPValueUnit, AXPValueUnits, AXPViewBlockDefinition, AXPViewDefinition, AXPViewFieldDefinition, AXPViewQuery, AXPWidgetTrigger, AXPWidgetTriggers, ColumnNameMatcher, ColumnWidthValue, IColumnWithWidth, WidgetTypeMatcher };
@@ -4,13 +4,24 @@ 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 { 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
+ type AXPDialogActionShortcut = string;
15
+ declare const DEFAULT_CANCEL_DIALOG_ACTION_SHORTCUTS: readonly AXPDialogActionShortcut[];
16
+ declare const DEFAULT_SUBMIT_DIALOG_ACTION_SHORTCUTS: readonly AXPDialogActionShortcut[];
17
+ interface AXPDialogActionOptions {
18
+ /**
19
+ * Additional keyboard shortcuts for this action (e.g. `'ctrl+s'`).
20
+ * Merged with built-in defaults for `cancel` / `submit`. Pass `[]` to disable all shortcuts.
21
+ */
22
+ shortcuts?: AXPDialogActionShortcut[];
23
+ }
24
+
14
25
  /**
15
26
  * Extended widget node properties (excluding type, path, name, options, children)
16
27
  * These properties can be passed as a third parameter to customWidget method
@@ -254,6 +265,14 @@ interface AXPFormFieldOptions extends LayoutWidgetOptions {
254
265
  hint?: AXPMultiLanguageString;
255
266
  hintDisplayMode?: AXPFormFieldHintDisplayMode;
256
267
  }
268
+ interface AXPDialogCloseConfirmationOptions {
269
+ /** When false, dirty-close confirmation is disabled even if the builder flag is set. */
270
+ enabled?: boolean;
271
+ title?: AXPMultiLanguageString;
272
+ message?: AXPMultiLanguageString;
273
+ /** Custom dirty check; defaults to user-origin context paths plus composite widget `api().isDirty()`. */
274
+ isDirty?: (context: Record<string, unknown>, baseline: Record<string, unknown>) => boolean;
275
+ }
257
276
  interface AXPDialogContainerOptions extends LayoutWidgetOptions {
258
277
  title?: string;
259
278
  message?: string;
@@ -261,6 +280,11 @@ interface AXPDialogContainerOptions extends LayoutWidgetOptions {
261
280
  closeButton?: boolean;
262
281
  context?: any;
263
282
  metadata?: AXPMetaData;
283
+ /**
284
+ * When enabled, prompts before dismiss (cancel, Esc, header close) if dialog context is dirty.
285
+ * Set via {@link IDialogBuilder.confirmCloseWhenDirty}.
286
+ */
287
+ confirmCloseWhenDirty?: boolean | AXPDialogCloseConfirmationOptions;
264
288
  /**
265
289
  * When set, invoked on footer action with {@link AXPDialogRef}.
266
290
  * Set via {@link IDialogBuilder.onAction}.
@@ -277,6 +301,7 @@ interface AXPLayoutBuilderDialogConfig {
277
301
  metadata?: AXPMetaData;
278
302
  actions: NonNullable<DialogBuilderState['actions']>;
279
303
  onAction?: (dialogRef: AXPDialogRef) => unknown | Promise<unknown>;
304
+ confirmCloseWhenDirty?: AXPDialogCloseConfirmationOptions;
280
305
  }
281
306
  interface RichTextOptions extends ValueWidgetOptions {
282
307
  placeholder?: AXPMultiLanguageString;
@@ -436,22 +461,25 @@ type WidgetBuilderState = AXPWidgetNode & {
436
461
  type FormFieldBuilderState = AXPWidgetNode & {
437
462
  layout?: AXPGridLayoutOptions;
438
463
  };
464
+ /** Dialog footer action item; extends menu actions with placement and keyboard shortcuts. */
465
+ type AXPDialogActionMenuItem = AXPActionMenuItem & {
466
+ position?: 'prefix' | 'suffix';
467
+ shortcuts?: AXPDialogActionShortcut[];
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,27 @@ declare class AXPDialogRendererComponent extends AXBasePageComponent implements
911
943
  private expressionEvaluator;
912
944
  private readonly commandService;
913
945
  private readonly hookService;
946
+ private readonly dialogService;
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
+ /** Baseline snapshot for dirty detection (captured once after init settles). */
955
+ private dirtyBaseline?;
956
+ /** True after the post-init baseline snapshot has been captured. */
957
+ private dirtyBaselineCaptured;
958
+ private dirtyBaselineIdleTimer?;
959
+ /** Callback payload applied when a dismiss is allowed in {@link onClosing}. */
960
+ private pendingDismissResolvePayload?;
961
+ /** Skips dirty confirmation on the next {@link onClosing} (successful submit / programmatic close). */
962
+ private skipNextOnClosingDirtyCheck;
963
+ /** Prevents concurrent dismiss paths from opening multiple unsaved-changes confirms. */
964
+ private dismissConfirmPromise?;
965
+ private dirtyBaselineFallbackTimer?;
966
+ private readonly destroyRef;
917
967
  context: _angular_core.WritableSignal<any>;
918
968
  callBack: (result: unknown) => void;
919
969
  data: any;
@@ -924,7 +974,29 @@ declare class AXPDialogRendererComponent extends AXBasePageComponent implements
924
974
  * Correlate layout context snapshots for distributed hooks (`layout-builder.dialog.context-changed`).
925
975
  */
926
976
  private readonly contextChangedHooksSessionKey;
977
+ /**
978
+ * Capture-phase footer shortcuts — runs before widget editors (select, date, text) that stop keydown bubbling.
979
+ */
980
+ private readonly onDialogShortcutCapture;
927
981
  ngOnInit(): void;
982
+ /**
983
+ * Popup shell hook — handles header **X** and **Esc** (when `closeButton` is enabled).
984
+ * This is the only place that prompts for unsaved changes.
985
+ */
986
+ onClosing(e: AXComponentClosing): Promise<void>;
987
+ /**
988
+ * Footer cancel and other in-app dismiss actions. Routes through `super.close()` so the
989
+ * popup shell invokes {@link onClosing} exactly once (same path as **X** / **Esc**).
990
+ */
991
+ private requestDismiss;
992
+ /** Invokes `show()` callback with the pending payload or a default cancel {@link AXPDialogRef}. */
993
+ private completeDismissResolve;
994
+ private getWidgetContextStore;
995
+ private scheduleDirtyBaselineCapture;
996
+ /**
997
+ * Captures a dialog-local baseline once after widget init/normalization goes idle.
998
+ */
999
+ private captureDirtyBaselineIfNeeded;
928
1000
  private layoutRenderer;
929
1001
  private debounceTimer?;
930
1002
  handleContextChanged(event: any): void;
@@ -935,6 +1007,9 @@ declare class AXPDialogRendererComponent extends AXBasePageComponent implements
935
1007
  isFormLoading(): boolean;
936
1008
  isSubmitting(): boolean;
937
1009
  executeAction(action: AXPWidgetCoreElementAction): Promise<void>;
1010
+ private isDialogDirty;
1011
+ private confirmDismissIfDirty;
1012
+ private promptUnsavedChangesConfirm;
938
1013
  /** Whether the layout form should be validated before running this footer command. */
939
1014
  private shouldValidateBeforeAction;
940
1015
  /** True when a footer handler or command result asks to leave the dialog open (`keepDialogOpen` on the result or `result.data`). */
@@ -947,7 +1022,9 @@ declare class AXPDialogRendererComponent extends AXBasePageComponent implements
947
1022
  private resolveActionCommandName;
948
1023
  private parseWidgetCommand;
949
1024
  private invokeWidget;
950
- close(result?: DialogRendererResult): Promise<void>;
1025
+ close(result?: DialogRendererResult, options?: {
1026
+ skipDirtyConfirm?: boolean;
1027
+ }): Promise<void>;
951
1028
  private aggregateAndEvaluateActions;
952
1029
  private collectWidgetActions;
953
1030
  private collectDialogActionsFromConfig;
@@ -1001,5 +1078,5 @@ declare class AXPPreviewWidgetFieldCommand implements AXPCommand<AXPPreviewWidge
1001
1078
  static ɵprov: _angular_core.ɵɵInjectableDeclaration<AXPPreviewWidgetFieldCommand>;
1002
1079
  }
1003
1080
 
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 };
1081
+ 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 };
1082
+ 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;
@@ -979,6 +982,10 @@ declare class AXPQueryFiltersComponent {
979
982
  protected onPopoverOpened(e: AXEvent): void;
980
983
  protected deactivateAllListItems(): void;
981
984
  protected isFilterDisabled(definition: AXPFilterDefinition): boolean;
985
+ /**
986
+ * Resolves filter chip labels; translates i18n keys stored in select `displayText` or datasource titles.
987
+ */
988
+ private formatFilterDisplayValue;
982
989
  private createExpressionScope;
983
990
  private isObservableLike;
984
991
  private buildFilterTriggerScope;
@@ -1229,24 +1236,21 @@ declare class AXPLayoutSideDetailPanelComponent {
1229
1236
  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
1237
  }
1231
1238
 
1232
- declare class AXPLogoComponent implements OnInit, OnChanges {
1233
- source: any;
1234
- protected activeSource: any;
1235
- protected logoType: string;
1236
- protected isCompactLogo: boolean;
1239
+ declare class AXPLogoComponent {
1240
+ source: _angular_core.InputSignal<any>;
1241
+ private readonly themeStore;
1242
+ private readonly platformConfig;
1243
+ private readonly deviceService;
1237
1244
  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;
1245
+ /**
1246
+ * Resolves menu mode with mobile overlay viewports forcing full logo display.
1247
+ */
1248
+ private readonly resolvedMenuMode;
1249
+ protected readonly activeSource: _angular_core.Signal<any>;
1250
+ protected readonly isCompactLogo: _angular_core.Signal<boolean>;
1251
+ protected readonly logoType: _angular_core.Signal<"icon" | "url" | "component" | undefined>;
1248
1252
  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>;
1253
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<AXPLogoComponent, "axp-logo", never, { "source": { "alias": "source"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
1250
1254
  }
1251
1255
 
1252
1256
  type MarkdownSegmentType = 'markdown' | 'code';