@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.
- package/fesm2022/acorex-platform-auth.mjs +10 -2
- package/fesm2022/acorex-platform-auth.mjs.map +1 -1
- package/fesm2022/{acorex-platform-common-common-settings.provider-Bi1RYif5.mjs → acorex-platform-common-common-settings.provider-Ytey9uhY.mjs} +15 -1
- package/fesm2022/acorex-platform-common-common-settings.provider-Ytey9uhY.mjs.map +1 -0
- package/fesm2022/acorex-platform-common.mjs +3792 -1679
- package/fesm2022/acorex-platform-common.mjs.map +1 -1
- package/fesm2022/acorex-platform-core.mjs +1112 -103
- package/fesm2022/acorex-platform-core.mjs.map +1 -1
- package/fesm2022/acorex-platform-layout-builder.mjs +53 -170
- package/fesm2022/acorex-platform-layout-builder.mjs.map +1 -1
- package/fesm2022/acorex-platform-layout-components.mjs +70 -46
- package/fesm2022/acorex-platform-layout-components.mjs.map +1 -1
- package/fesm2022/acorex-platform-layout-designer.mjs +199 -126
- package/fesm2022/acorex-platform-layout-designer.mjs.map +1 -1
- package/fesm2022/{acorex-platform-layout-entity-attachments-page.component-D8iQnT-R.mjs → acorex-platform-layout-entity-attachments-page.component-B0EkdqvH.mjs} +6 -1
- package/fesm2022/acorex-platform-layout-entity-attachments-page.component-B0EkdqvH.mjs.map +1 -0
- package/fesm2022/acorex-platform-layout-entity.mjs +341 -418
- package/fesm2022/acorex-platform-layout-entity.mjs.map +1 -1
- package/fesm2022/acorex-platform-layout-views.mjs +675 -301
- package/fesm2022/acorex-platform-layout-views.mjs.map +1 -1
- package/fesm2022/acorex-platform-layout-widget-core.mjs +115 -74
- package/fesm2022/acorex-platform-layout-widget-core.mjs.map +1 -1
- 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
- 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
- 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
- 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
- package/fesm2022/acorex-platform-layout-widgets.mjs +184 -655
- package/fesm2022/acorex-platform-layout-widgets.mjs.map +1 -1
- package/fesm2022/acorex-platform-themes-default-error-401.component-B1nsdpTY.mjs +48 -0
- package/fesm2022/acorex-platform-themes-default-error-401.component-B1nsdpTY.mjs.map +1 -0
- package/fesm2022/acorex-platform-themes-default-error-404.component-D4UvRe8u.mjs +42 -0
- package/fesm2022/acorex-platform-themes-default-error-404.component-D4UvRe8u.mjs.map +1 -0
- package/fesm2022/acorex-platform-themes-default.mjs +76 -32
- package/fesm2022/acorex-platform-themes-default.mjs.map +1 -1
- package/package.json +1 -1
- package/types/acorex-platform-auth.d.ts +2 -0
- package/types/acorex-platform-common.d.ts +891 -259
- package/types/acorex-platform-core.d.ts +284 -40
- package/types/acorex-platform-layout-builder.d.ts +10 -22
- package/types/acorex-platform-layout-components.d.ts +9 -7
- package/types/acorex-platform-layout-entity.d.ts +37 -41
- package/types/acorex-platform-layout-views.d.ts +125 -67
- package/types/acorex-platform-layout-widget-core.d.ts +53 -61
- package/types/acorex-platform-layout-widgets.d.ts +33 -20
- package/types/acorex-platform-themes-default.d.ts +14 -4
- package/fesm2022/acorex-platform-common-common-settings.provider-Bi1RYif5.mjs.map +0 -1
- package/fesm2022/acorex-platform-layout-entity-attachments-page.component-D8iQnT-R.mjs.map +0 -1
- package/fesm2022/acorex-platform-themes-default-error-401.component-C7EYJzSr.mjs +0 -31
- package/fesm2022/acorex-platform-themes-default-error-401.component-C7EYJzSr.mjs.map +0 -1
- package/fesm2022/acorex-platform-themes-default-error-404.component-7MVLMwIa.mjs +0 -25
- package/fesm2022/acorex-platform-themes-default-error-404.component-7MVLMwIa.mjs.map +0 -1
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import * as _acorex_platform_core from '@acorex/platform/core';
|
|
2
|
-
import { AXPExecuteCommandResult, AXPMetaData, AXPDataSourceDefinitionProvider, AXPDataSourceDefinition, AXPGridLayoutOptions, AXPMultiLanguageString, AXPBreadcrumbItem, AXPFilterQuery, AXPFilterDefinition, AXPExecuteCommand, AXPQueryRequest, AXPPagedListResult, AXPUserReference, AXPCategoryEntity as AXPCategoryEntity$1, AXPEntityOp, AXPMiddlewareErrorResponse, AXHighlightService, AXPExpression, AXPColumnQuery, AXPSortDefinition, AXPDeviceService, AXPBroadcastEventService, AXPActionMenuItem, AXPFileListItem,
|
|
2
|
+
import { AXPExecuteCommandResult, AXPMetaData, AXPDataSourceDefinitionProvider, AXPDataSourceDefinition, AXPGridLayoutOptions, AXPMultiLanguageString, AXPBreadcrumbItem, AXPFilterQuery, AXPFilterDefinition, AXPExecuteCommand, AXPQueryRequest, AXPPagedListResult, AXPUserReference, AXPCategoryEntity as AXPCategoryEntity$1, AXPEntityOp, AXPMiddlewareErrorResponse, AXHighlightService, AXPExpression, AXPColumnQuery, AXPSortDefinition, AXPDeviceService, AXPBroadcastEventService, AXPActionMenuItem, AXPFileListItem, AXPContextChangeEvent } from '@acorex/platform/core';
|
|
3
3
|
import { AXPCommand, AXPQueryExecutor, AXPCommandService, AXPQuery } from '@acorex/platform/runtime';
|
|
4
4
|
import * as _angular_core from '@angular/core';
|
|
5
5
|
import { ElementRef, InjectionToken, Injector, Type, EnvironmentProviders, OnInit, ChangeDetectorRef, OnDestroy } from '@angular/core';
|
|
@@ -13,7 +13,7 @@ import { AXPRelatedEntity, AXPEntityPage, AXPEntityCommandScope, AXPEntity, AXPE
|
|
|
13
13
|
export { AXPEntityDefinitionCrudService, AXP_ENTITY_DEFINITION_CRUD_SERVICE } from '@acorex/platform/domain';
|
|
14
14
|
import { AXStyleColorType, AXDataSource, AXDataSourceFilterOption, AXDataSourceSortOption, AXValueChangedEvent, AXClickEvent, AXFocusEvent, AXHtmlEvent } from '@acorex/cdk/common';
|
|
15
15
|
import * as i1 from '@angular/router';
|
|
16
|
-
import { ResolveFn } from '@angular/router';
|
|
16
|
+
import { ResolveFn, RedirectCommand } from '@angular/router';
|
|
17
17
|
import * as rxjs from 'rxjs';
|
|
18
18
|
import { Subject } from 'rxjs';
|
|
19
19
|
import * as i3 from '@acorex/platform/workflow';
|
|
@@ -343,6 +343,7 @@ declare class AXPEntityCommandTriggerViewModel {
|
|
|
343
343
|
options: any;
|
|
344
344
|
metadata?: AXPMetaData;
|
|
345
345
|
default?: boolean;
|
|
346
|
+
shortcuts?: string[];
|
|
346
347
|
items?: AXPEntityCommandTriggerViewModel[];
|
|
347
348
|
isChild?: boolean;
|
|
348
349
|
constructor(entity: AXPEntity, action: AXPEntityAction, isChild?: boolean);
|
|
@@ -863,7 +864,7 @@ declare class AXPEntityListViewModelFactory {
|
|
|
863
864
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXPEntityListViewModelFactory, never>;
|
|
864
865
|
static ɵprov: _angular_core.ɵɵInjectableDeclaration<AXPEntityListViewModelFactory>;
|
|
865
866
|
}
|
|
866
|
-
declare const AXPEntityListViewModelResolver: ResolveFn<Promise<AXPEntityMasterListViewModel>>;
|
|
867
|
+
declare const AXPEntityListViewModelResolver: ResolveFn<Promise<AXPEntityMasterListViewModel | RedirectCommand>>;
|
|
867
868
|
|
|
868
869
|
declare class AXPEntityMasterSingleViewGroupViewModel {
|
|
869
870
|
private entity;
|
|
@@ -1193,7 +1194,7 @@ declare class AXPEntityPreloadFiltersViewModel {
|
|
|
1193
1194
|
*/
|
|
1194
1195
|
serializeFilters(filters: any): AXPFilterQuery[];
|
|
1195
1196
|
}
|
|
1196
|
-
declare const AXPEntityPreloadFiltersViewModelResolver: ResolveFn<Promise<AXPEntityPreloadFiltersViewModel>>;
|
|
1197
|
+
declare const AXPEntityPreloadFiltersViewModelResolver: ResolveFn<Promise<AXPEntityPreloadFiltersViewModel | RedirectCommand>>;
|
|
1197
1198
|
|
|
1198
1199
|
type AXPCollectEntityQuickSearchPathsResolver = (moduleName: string, entityName: string) => Promise<AXPEntity | null>;
|
|
1199
1200
|
/**
|
|
@@ -1476,6 +1477,8 @@ interface AXPEntityDetailDto<Id> extends AXPEntityOutputDto<Id> {
|
|
|
1476
1477
|
}
|
|
1477
1478
|
interface AXPEntityListItemDto<Id> extends AXPEntityOutputDto<Id> {
|
|
1478
1479
|
}
|
|
1480
|
+
interface AXPMockDto<Id> extends AXPEntityModel<Id> {
|
|
1481
|
+
}
|
|
1479
1482
|
|
|
1480
1483
|
declare abstract class AXPEntityStorageService<TKey, TDetailDto extends AXPEntityDetailDto<TKey> = AXPEntityModel<TKey>, TListItemDto extends AXPEntityListItemDto<TKey> = TDetailDto, TCreateDto extends AXPEntityCreateDto = TDetailDto, TUpdateDto extends AXPEntityUpdateDto<TKey> = TDetailDto> {
|
|
1481
1484
|
abstract get dbName(): string;
|
|
@@ -2321,16 +2324,19 @@ declare class AXPEntityCategoryTreeSelectorComponent extends AXBasePageComponent
|
|
|
2321
2324
|
private initialExpandSyncDone;
|
|
2322
2325
|
constructor();
|
|
2323
2326
|
ngOnInit(): void;
|
|
2327
|
+
/** Keeps at most one id when {@link allowMultiple} is false. */
|
|
2328
|
+
private normalizeSelectedIds;
|
|
2329
|
+
private setSelectedNodeIds;
|
|
2330
|
+
/** Keeps widget selectedNodeIds in sync when the tree uses controlled single selection. */
|
|
2331
|
+
protected onControlledSelectedIdsChange(ids: string[]): void;
|
|
2332
|
+
private waitForTreeComponent;
|
|
2333
|
+
/** Expands ancestor paths and reveals the initial selection via the tree API. */
|
|
2334
|
+
private revealInitialSelection;
|
|
2324
2335
|
private initializeTree;
|
|
2325
2336
|
/**
|
|
2326
2337
|
* Called when popup data arrives after ngOnInit: load data, set selection, expand and sync.
|
|
2327
2338
|
*/
|
|
2328
2339
|
private runInitialExpandAndSync;
|
|
2329
|
-
/**
|
|
2330
|
-
* Runs expand path + sync selection once the tree viewChild is available.
|
|
2331
|
-
* Uses retry loop so we don't run before the view has rendered the tree.
|
|
2332
|
-
*/
|
|
2333
|
-
private runExpandAndSyncWhenTreeReady;
|
|
2334
2340
|
/**
|
|
2335
2341
|
* Handles search input value changes - Uses server-side search for efficiency and reliability
|
|
2336
2342
|
*/
|
|
@@ -2369,10 +2375,9 @@ declare class AXPEntityCategoryTreeSelectorComponent extends AXBasePageComponent
|
|
|
2369
2375
|
*/
|
|
2370
2376
|
private resetSearch;
|
|
2371
2377
|
/**
|
|
2372
|
-
* Restores selection
|
|
2373
|
-
* Expands ancestor nodes and selects the previously selected leaf nodes.
|
|
2378
|
+
* Restores multiple-mode leaf selection after search reset.
|
|
2374
2379
|
*/
|
|
2375
|
-
private
|
|
2380
|
+
private restoreMultipleSelectionAfterReload;
|
|
2376
2381
|
protected onNodeSelect(event: AXTreeViewNodeSelectEvent): Promise<void>;
|
|
2377
2382
|
/** Datasource callback for tree-view component. */
|
|
2378
2383
|
protected datasource: (id?: string) => Promise<AXTreeViewNode[]>;
|
|
@@ -2434,11 +2439,6 @@ declare class AXPEntityCategoryTreeSelectorComponent extends AXBasePageComponent
|
|
|
2434
2439
|
private expandAncestorNodesInOrder;
|
|
2435
2440
|
/** Waits until the node is expanded (tree has loaded children). Polls so deep paths load. */
|
|
2436
2441
|
private waitForNodeExpanded;
|
|
2437
|
-
/**
|
|
2438
|
-
* Syncs selection state with the tree component.
|
|
2439
|
-
* Selects leaf nodes and manually updates parent states (indeterminate/selected).
|
|
2440
|
-
*/
|
|
2441
|
-
private syncSelectionWithTree;
|
|
2442
2442
|
/**
|
|
2443
2443
|
* Updates parent node states (selected/indeterminate) based on children selection.
|
|
2444
2444
|
* Called after leaf nodes are selected to properly show parent states.
|
|
@@ -2461,26 +2461,16 @@ declare class AXPEntityCategoryTreeSelectorComponent extends AXBasePageComponent
|
|
|
2461
2461
|
* Resolves parent ID from node data: supports nested `parent` object or flat parentId/parentKey.
|
|
2462
2462
|
*/
|
|
2463
2463
|
private getParentIdFromNodeData;
|
|
2464
|
-
/**
|
|
2465
|
-
* Marks nodes as selected in the tree structure based on selectedNodeIds.
|
|
2466
|
-
* This ensures pre-selected nodes appear selected when the tree is rendered.
|
|
2467
|
-
*/
|
|
2468
|
-
private markNodesAsSelected;
|
|
2469
|
-
/**
|
|
2470
|
-
* Marks a single node as selected if it's in the selectedNodeIds list.
|
|
2471
|
-
*/
|
|
2472
|
-
private markNodeAsSelectedIfNeeded;
|
|
2473
2464
|
/**
|
|
2474
2465
|
* Marks a node and its children as disabled if the node ID matches the excluded ID.
|
|
2475
2466
|
*/
|
|
2476
2467
|
private markNodeAsDisabled;
|
|
2477
2468
|
/**
|
|
2478
|
-
* Processes root node: marks excluded as disabled
|
|
2469
|
+
* Processes root node: marks excluded nodes as disabled.
|
|
2479
2470
|
*/
|
|
2480
2471
|
private processRootNode;
|
|
2481
2472
|
/**
|
|
2482
2473
|
* Processes child nodes: marks excluded as disabled
|
|
2483
|
-
* Selection marking is handled in datasource callback ONLY during initial load
|
|
2484
2474
|
*/
|
|
2485
2475
|
private processChildNodes;
|
|
2486
2476
|
/**
|
|
@@ -2619,6 +2609,7 @@ declare class AXPEntityCategoryWidgetEditComponent extends AXPValueWidgetCompone
|
|
|
2619
2609
|
private findByValue;
|
|
2620
2610
|
private setItems;
|
|
2621
2611
|
private singleOrMultiple;
|
|
2612
|
+
private normalizePopupSelectedIds;
|
|
2622
2613
|
protected getItemLabel(item: any): string;
|
|
2623
2614
|
/**
|
|
2624
2615
|
* Get item path as array for breadcrumb component (raw MLS or string per segment).
|
|
@@ -2903,6 +2894,13 @@ declare class AXPEntityListWidgetViewComponent extends AXPValueWidgetComponent {
|
|
|
2903
2894
|
* Applies merged route + parent-scope filters to the widget value and data source.
|
|
2904
2895
|
*/
|
|
2905
2896
|
private applyMergedRouteFiltersToList;
|
|
2897
|
+
/** Syncs toolbar filters to context and AXDataSource (retries until data-list is mounted). */
|
|
2898
|
+
private reapplyScopedFiltersToDataSource;
|
|
2899
|
+
/**
|
|
2900
|
+
* Entity lists use `fetchDataMode: 'manual'`; after scoped filters reach the data source,
|
|
2901
|
+
* the grid must be refreshed once (initial #effect may run before the data-list is ready).
|
|
2902
|
+
*/
|
|
2903
|
+
private triggerInitialLoadIfNeeded;
|
|
2906
2904
|
/**
|
|
2907
2905
|
* Re-evaluates related-entity list filters from the live dialog form context (e.g. after create saves the main row id).
|
|
2908
2906
|
*/
|
|
@@ -2912,6 +2910,11 @@ declare class AXPEntityListWidgetViewComponent extends AXPValueWidgetComponent {
|
|
|
2912
2910
|
* Returns false while data-list is still mounting (see deferred listNode.set in ngOnInit).
|
|
2913
2911
|
*/
|
|
2914
2912
|
private pushToolbarFiltersToDataSource;
|
|
2913
|
+
/**
|
|
2914
|
+
* Pushes toolbar filters once the embedded data-list exposes its data source
|
|
2915
|
+
* (listNode is created via deferred setTimeout in ngOnInit).
|
|
2916
|
+
*/
|
|
2917
|
+
private ensureToolbarFiltersOnDataSource;
|
|
2915
2918
|
/**
|
|
2916
2919
|
* Writes toolbar filters from specs and pushes them onto the data source so refresh/reload keeps the parent scope.
|
|
2917
2920
|
*/
|
|
@@ -2942,7 +2945,8 @@ declare class AXPEntityListWidgetViewComponent extends AXPValueWidgetComponent {
|
|
|
2942
2945
|
*/
|
|
2943
2946
|
private applyDataSourceChanges;
|
|
2944
2947
|
/**
|
|
2945
|
-
* Handles list refresh logic based on changes and mount status
|
|
2948
|
+
* Handles list refresh logic based on changes and mount status.
|
|
2949
|
+
* Initial fetch is owned by {@link triggerInitialLoadIfNeeded} (manual fetchDataMode).
|
|
2946
2950
|
*/
|
|
2947
2951
|
private handleListRefresh;
|
|
2948
2952
|
/**
|
|
@@ -3421,11 +3425,6 @@ interface AXPLookupWidgetOptions {
|
|
|
3421
3425
|
selectorRowActions?: AXPLookupSelectorRowActionsConfig;
|
|
3422
3426
|
}
|
|
3423
3427
|
|
|
3424
|
-
/**
|
|
3425
|
-
* Normalizes lookup/search display templates for row-based formatting.
|
|
3426
|
-
* Converts `context.eval('path')` expressions to `{{ path }}` and single braces to mustache form.
|
|
3427
|
-
*/
|
|
3428
|
-
declare function normalizeLookupDisplayTemplate(template: string): string;
|
|
3429
3428
|
/**
|
|
3430
3429
|
* Resolves the display template for a lookup item.
|
|
3431
3430
|
* Priority: explicit `displayFormat` → entity `formats.lookup` (template) → entity `formats.searchResult.title`.
|
|
@@ -3441,8 +3440,6 @@ declare function resolveLookupDisplayField(entity: AXPEntity | null | undefined,
|
|
|
3441
3440
|
* Formats a lookup row for display using template and/or field resolution.
|
|
3442
3441
|
*/
|
|
3443
3442
|
declare function formatLookupItemDisplay(item: unknown, entity: AXPEntity | null | undefined, options: AXPLookupDisplayOptions, formatService: AXFormatService, resolveMultiLanguage?: (value: AXPMultiLanguageString) => string): string | AXPMultiLanguageString;
|
|
3444
|
-
/** True when a formatted label still contains unresolved template markers. */
|
|
3445
|
-
declare function isUnresolvedLookupDisplayTemplate(value: string): boolean;
|
|
3446
3443
|
|
|
3447
3444
|
declare class AXPLookupWidgetViewComponent extends AXPValueWidgetComponent<any> {
|
|
3448
3445
|
protected readonly formatService: AXFormatService;
|
|
@@ -3744,9 +3741,8 @@ declare class AXPLookupWidgetEditComponent extends AXPValueWidgetComponent<any>
|
|
|
3744
3741
|
protected handleCreateClick(_e: AXClickEvent): Promise<void>;
|
|
3745
3742
|
private executeCreate;
|
|
3746
3743
|
protected setLoading: (loading: boolean) => void;
|
|
3747
|
-
|
|
3748
|
-
|
|
3749
|
-
}) => void;
|
|
3744
|
+
/** @param syncContext When false, only updates UI (hydration/revert); skips context writes. */
|
|
3745
|
+
protected setItems: (items: any[], syncContext?: boolean) => void;
|
|
3750
3746
|
/**
|
|
3751
3747
|
* Writes expose targets into context using per-path updates.
|
|
3752
3748
|
* Avoids `contextService.patch()` with nested objects: patch shallow-merges top-level keys only,
|
|
@@ -4488,5 +4484,5 @@ declare class AXPShowListViewAction extends AXPWorkflowAction {
|
|
|
4488
4484
|
}
|
|
4489
4485
|
declare const AXPShowListViewWorkflow: AXPWorkflow;
|
|
4490
4486
|
|
|
4491
|
-
export { ATTACHMENTS_PAGE_COMPONENT_KEY, AXMEntityCrudService, AXMEntityCrudServiceImpl, AXPCategoryTreeService, AXPCreateEntityCommand, AXPCreateEntityWorkflow, AXPDataSeederService, AXPDeleteEntityWorkflow, AXPEditFileUploaderCommand, AXPEntitiesListDataSourceDefinition, AXPEntityApplyUpdatesAction, AXPEntityCategoryTreeSelectorComponent, AXPEntityCategoryWidget, AXPEntityCategoryWidgetColumnComponent, AXPEntityCategoryWidgetEditComponent, AXPEntityCategoryWidgetViewComponent, AXPEntityCommandTriggerViewModel, AXPEntityCreateEvent, AXPEntityCreatePopupAction, AXPEntityCreateSubmittedAction, AXPEntityCreateViewElementViewModel, AXPEntityCreateViewModelFactory, AXPEntityCreateViewSectionViewModel, AXPEntityDataProvider, AXPEntityDataProviderImpl, AXPEntityDataSelectorRowActionsService, AXPEntityDataSelectorService, AXPEntityDefinitionProviderWidget, AXPEntityDefinitionProviderWidgetEditComponent, AXPEntityDefinitionRegistryService, AXPEntityDeletedEvent, AXPEntityDetailListViewModel, AXPEntityDetailPopoverComponent, AXPEntityDetailPopoverService, AXPEntityDetailViewModelFactory, AXPEntityDetailViewModelResolver, AXPEntityEventDispatcherService, AXPEntityEventsKeys, AXPEntityFormBuilderService, AXPEntityListPersistenceModeDefault, AXPEntityListTableService, AXPEntityListToolbarService, AXPEntityListViewCardFieldViewModel, AXPEntityListViewColumnViewModel, AXPEntityListViewModelFactory, AXPEntityListViewModelResolver, AXPEntityListWidget, AXPEntityListWidgetViewComponent, AXPEntityMasterCreateViewModel, AXPEntityMasterListCardSelectActionName, AXPEntityMasterListViewModel, AXPEntityMasterListViewQueryViewModel, AXPEntityMasterSingleElementViewModel, AXPEntityMasterSingleViewGroupViewModel, AXPEntityMasterSingleViewModel, AXPEntityMasterUpdateElementViewModel, AXPEntityMasterUpdateViewModel, AXPEntityMasterUpdateViewModelFactory, AXPEntityMiddleware, AXPEntityModifyConfirmedAction, AXPEntityModifyEvent, AXPEntityModifySectionPopupAction, AXPEntityModule, AXPEntityPerformDeleteAction, AXPEntityPreloadFiltersContainerComponent, AXPEntityPreloadFiltersViewModel, AXPEntityPreloadFiltersViewModelResolver, AXPEntityResolver, AXPEntityService, AXPEntityStorageService, AXPEntityUpdateViewSectionViewModel, AXPFileListComponent, AXPFileUploaderLoadFilesQuery, AXPFileUploaderSaveFilesCommand, AXPFileUploaderWidget, AXPFileUploaderWidgetColumnComponent, AXPFileUploaderWidgetEditComponent, AXPFileUploaderWidgetService, AXPFileUploaderWidgetViewComponent, AXPGetEntityDetailsQuery, AXPLayoutOrderingConfigService, AXPLookupWidget, AXPLookupWidgetColumnComponent, AXPLookupWidgetEditComponent, AXPLookupWidgetViewComponent, AXPMiddlewareAbortError, AXPMiddlewareEntityStorageService, AXPModifyEntitySectionWorkflow, AXPMultiSourceDefinitionProviderContext, AXPMultiSourceDefinitionProviderService, AXPMultiSourceFederatedSearchService, AXPMultiSourceSelectorComponent, AXPMultiSourceSelectorService, AXPMultiSourceSelectorWidget, AXPMultiSourceSelectorWidgetColumnComponent, AXPMultiSourceSelectorWidgetEditComponent, AXPMultiSourceSelectorWidgetViewComponent, AXPMultiSourceType, AXPOpenEntityDetailsCommand, AXPQuickEntityModifyPopupAction, AXPQuickModifyEntityWorkflow, AXPRelatedColumnEnrichmentService, AXPRelatedColumnMetadataResolver, AXPSelectorStructureWidget, AXPSelectorStructureWidgetColumnComponent, AXPSelectorStructureWidgetEditComponent, AXPSelectorStructureWidgetViewComponent, AXPShowDetailViewAction, AXPShowDetailsViewWorkflow, AXPShowListViewAction, AXPShowListViewWorkflow, AXPTruncatedBreadcrumbComponent, AXPUpdateEntityCommand, AXPViewEntityDetailsCommand, AXP_CATEGORY_TREE_ROOT_TITLE_I18N_KEY, AXP_DATA_SEEDER_TOKEN, AXP_ENTITY_ACTION_PLUGIN, AXP_ENTITY_CONFIG_TOKEN, AXP_ENTITY_DEFINITION_LOADER, AXP_ENTITY_MODIFIER, AXP_ENTITY_STORAGE_BACKEND, AXP_ENTITY_STORAGE_MIDDLEWARE, AXP_MULTI_SOURCE_DEFINITION_PROVIDER, AXP_RECORD_WORKFLOW_INFO_CORRELATION_ID_FIELD, AXP_RECORD_WORKFLOW_INFO_DEFINITION_ID_FIELD, AXP_RECORD_WORKFLOW_INFO_INSTANCE_ID_FIELD, DEFAULT_COLUMN_ORDER, DEFAULT_PAIR_SPAN_RULES, DEFAULT_PROPERTY_ORDER, DEFAULT_SECTION_ORDER, ENTITY_LIST_ROUTE_CONTEXT_SESSION_KEY, EntityBuilder, EntityDataAccessor, actionExists, applyDataSourcePagingWithoutLoad, attachmentFieldCount, attachmentsPlugin, attachmentsSemanticallyEqual, axpCreateEntityAiToolInputDefaults, axpCreateEntityCommandDefinition, buildAXPRecordWorkflowInfo, canPersistEntityListState, cloneLayoutArrays, collectEntityQuickSearchFieldPaths, collectNestedCreateHiddenProperties, collectNestedFieldPathsFromEntityColumns, collectQuickSearchPathsFromSingleEntityDefinition, columnOrderingMiddleware, columnOrderingMiddlewareProvider, columnWidthMiddleware, columnWidthMiddlewareProvider, commandMessageTextForError, committedAttachments, computeEntityAggregates, createColumnOrderingMiddlewareProvider, createLayoutOrderingMiddlewareProvider, createModifierContext, defaultCardLayoutMiddleware, defaultCardLayoutMiddlewareProvider, defaultMultiLanguageMiddleware, defaultMultiLanguageMiddlewareProvider, detectEntityChanges, ensureLayoutPropertyView, ensureLayoutSection, ensureListActions, entityDetailsCreateActions, entityDetailsCreateActionsDeferredParent, entityDetailsCrudActions, entityDetailsEditAction, entityDetailsNewEditAction, entityDetailsReferenceCondition, entityDetailsReferenceCreateActions, entityDetailsSimpleCondition, entityMasterBulkDeleteAction, entityMasterCreateAction, entityMasterCrudActions, entityMasterDeleteAction, entityMasterEditAction, entityMasterRecordActions, entityMasterViewAction, entityOverrideDetailsViewAction, eventDispatchMiddleware, filterSortEntityRows, findEntityListRowDataInTree, fingerprintAttachmentItem, fingerprintAttachments, formatLookupItemDisplay, getDataSourcePageIndex, getEntityListRowId, getMasterInterfacePropertySortKey, getRecordWorkflowCorrelationId, getRecordWorkflowInstanceId, hasFileUploaderTitleOrDescriptionFields, isAXPMiddlewareAbortError, isAttachmentListEntry, isCategoryEntity, isCategoryFilter, isFileListItem, isFileUploaderEditDialogAuto, isLegacyEntityDataSelectorOptions,
|
|
4492
|
-
export type { AXPAuditEvent, AXPCollectEntityQuickSearchPathsResolver, AXPDataSeeder, AXPEntityActionPlugin, AXPEntityAggregateMeasure, AXPEntityAggregateOptions, AXPEntityAggregateReducerType, AXPEntityAggregateRequest, AXPEntityAggregateResult, AXPEntityCategoryWidgetOptions, AXPEntityChangeSet, AXPEntityConfigs, AXPEntityCreateDto, AXPEntityDataSelectorCategoryFilterOptions, AXPEntityDataSelectorCategoryOptions, AXPEntityDataSelectorCreateOptions, AXPEntityDataSelectorFilterOptions, AXPEntityDataSelectorGridOptions, AXPEntityDataSelectorOpenInput, AXPEntityDataSelectorOpenOptions, AXPEntityDataSelectorOptions, AXPEntityDataSelectorResult, AXPEntityDataSelectorRowActionsConfig, AXPEntityDataSelectorSearchOptions, AXPEntityDataSelectorSelectionOptions, AXPEntityDataSelectorSortOptions, AXPEntityDefinitionLoader, AXPEntityDefinitionPreloader, AXPEntityDeleteOptions, AXPEntityDetailDto, AXPEntityDetailPopoverOptions, AXPEntityLayoutLike, AXPEntityLayoutPropertyLike, AXPEntityLayoutSectionLike, AXPEntityListEntry, AXPEntityListExpandRowRef, AXPEntityListInput, AXPEntityListItemDto, AXPEntityListPagingState, AXPEntityListPersistenceMode, AXPEntityListToolbarConvertOptions, AXPEntityMasterListCardLayout, AXPEntityMasterListCardSecondaryActionItem, AXPEntityMasterListViewSortPropViewModel, AXPEntityModel, AXPEntityModifier, AXPEntityModifierContext, AXPEntityModifierProvider, AXPEntityOutputDto, AXPEntityPreloadEntity, AXPEntityQueryAllOptions, AXPEntityQueryAllResult, AXPEntityStorageContext, AXPEntityStorageMiddleware, AXPEntityUpdateDto, AXPFileListLook, AXPFileUploaderEditDialogFieldOptions, AXPFileUploaderEditDialogMode, AXPFileUploaderEditDialogOptions, AXPFileUploaderEntityFilesScope, AXPFileUploaderLoadFilesInput, AXPFileUploaderLoadFilesResult, AXPFileUploaderSaveFilesInput, AXPFileUploaderSaveFilesResult, AXPFileUploaderShowFileListEntityContext, AXPFileUploaderShowFileListOptions, AXPFileUploaderUploadActionDescriptor, AXPFileUploaderWidgetColumnOptions, AXPFileUploaderWidgetDesignerOptions, AXPFileUploaderWidgetEditOptions, AXPFileUploaderWidgetOptions, AXPFileUploaderWidgetPrintOptions, AXPFileUploaderWidgetViewOptions, AXPGetEntityDetailsQueryInput, AXPGetEntityDetailsQueryResult, AXPLookupColumnResolveOptions, AXPLookupColumnResolveStrategy, AXPLookupDisplayOptions, AXPLookupPopoverOptions, AXPLookupSelectorRowActionsConfig, AXPLookupWidgetLookType, AXPLookupWidgetOptions, AXPMultiSourceDefinition, AXPMultiSourceDefinitionProvider, AXPMultiSourceItem, AXPMultiSourceRef, AXPMultiSourceSearchResult, AXPMultiSourceSearchResultItem, AXPMultiSourceSelectorOpenConfig, AXPMultiSourceSelectorResult, AXPMultiSourceSelectorWidgetOptions, AXPMultiSourceValue, AXPOpenEntityDetailsCommandInput, AXPRecordAuditInfo, AXPRecordOwnershipInfo, AXPRecordStateInfo, AXPRecordWorkflowInfo, AXPRelatedColumnMetadata, AXPSelectorStructureFieldDef, AXPSelectorStructureIdentityDisplay, AXPSelectorStructurePresentationMode, AXPSelectorStructureSelectorMode, AXPSelectorStructureStructureMode, AXPSelectorStructureWidgetColumnOptions, AXPSelectorStructureWidgetDesignerOptions, AXPSelectorStructureWidgetEditOptions, AXPSelectorStructureWidgetOptions, AXPSelectorStructureWidgetPrintOptions, AXPSelectorStructureWidgetViewOptions, AXPShowListViewCondition, AttachmentsDisplayMode, AttachmentsPluginOptions, CategoryQueryEvent, CategoryQueryFunction, CategoryQueryResult, CategoryTreeConfig, CategoryTreeNodeData, EntityDetailPluginPageSlot, PairSpanRule, ResolveEntityPluginDetailPageOrderOptions, RunEntityQueryAdapters, SectionOrderConfig, SkipEntityComponentPageRef };
|
|
4487
|
+
export { ATTACHMENTS_PAGE_COMPONENT_KEY, AXMEntityCrudService, AXMEntityCrudServiceImpl, AXPCategoryTreeService, AXPCreateEntityCommand, AXPCreateEntityWorkflow, AXPDataSeederService, AXPDeleteEntityWorkflow, AXPEditFileUploaderCommand, AXPEntitiesListDataSourceDefinition, AXPEntityApplyUpdatesAction, AXPEntityCategoryTreeSelectorComponent, AXPEntityCategoryWidget, AXPEntityCategoryWidgetColumnComponent, AXPEntityCategoryWidgetEditComponent, AXPEntityCategoryWidgetViewComponent, AXPEntityCommandTriggerViewModel, AXPEntityCreateEvent, AXPEntityCreatePopupAction, AXPEntityCreateSubmittedAction, AXPEntityCreateViewElementViewModel, AXPEntityCreateViewModelFactory, AXPEntityCreateViewSectionViewModel, AXPEntityDataProvider, AXPEntityDataProviderImpl, AXPEntityDataSelectorRowActionsService, AXPEntityDataSelectorService, AXPEntityDefinitionProviderWidget, AXPEntityDefinitionProviderWidgetEditComponent, AXPEntityDefinitionRegistryService, AXPEntityDeletedEvent, AXPEntityDetailListViewModel, AXPEntityDetailPopoverComponent, AXPEntityDetailPopoverService, AXPEntityDetailViewModelFactory, AXPEntityDetailViewModelResolver, AXPEntityEventDispatcherService, AXPEntityEventsKeys, AXPEntityFormBuilderService, AXPEntityListPersistenceModeDefault, AXPEntityListTableService, AXPEntityListToolbarService, AXPEntityListViewCardFieldViewModel, AXPEntityListViewColumnViewModel, AXPEntityListViewModelFactory, AXPEntityListViewModelResolver, AXPEntityListWidget, AXPEntityListWidgetViewComponent, AXPEntityMasterCreateViewModel, AXPEntityMasterListCardSelectActionName, AXPEntityMasterListViewModel, AXPEntityMasterListViewQueryViewModel, AXPEntityMasterSingleElementViewModel, AXPEntityMasterSingleViewGroupViewModel, AXPEntityMasterSingleViewModel, AXPEntityMasterUpdateElementViewModel, AXPEntityMasterUpdateViewModel, AXPEntityMasterUpdateViewModelFactory, AXPEntityMiddleware, AXPEntityModifyConfirmedAction, AXPEntityModifyEvent, AXPEntityModifySectionPopupAction, AXPEntityModule, AXPEntityPerformDeleteAction, AXPEntityPreloadFiltersContainerComponent, AXPEntityPreloadFiltersViewModel, AXPEntityPreloadFiltersViewModelResolver, AXPEntityResolver, AXPEntityService, AXPEntityStorageService, AXPEntityUpdateViewSectionViewModel, AXPFileListComponent, AXPFileUploaderLoadFilesQuery, AXPFileUploaderSaveFilesCommand, AXPFileUploaderWidget, AXPFileUploaderWidgetColumnComponent, AXPFileUploaderWidgetEditComponent, AXPFileUploaderWidgetService, AXPFileUploaderWidgetViewComponent, AXPGetEntityDetailsQuery, AXPLayoutOrderingConfigService, AXPLookupWidget, AXPLookupWidgetColumnComponent, AXPLookupWidgetEditComponent, AXPLookupWidgetViewComponent, AXPMiddlewareAbortError, AXPMiddlewareEntityStorageService, AXPModifyEntitySectionWorkflow, AXPMultiSourceDefinitionProviderContext, AXPMultiSourceDefinitionProviderService, AXPMultiSourceFederatedSearchService, AXPMultiSourceSelectorComponent, AXPMultiSourceSelectorService, AXPMultiSourceSelectorWidget, AXPMultiSourceSelectorWidgetColumnComponent, AXPMultiSourceSelectorWidgetEditComponent, AXPMultiSourceSelectorWidgetViewComponent, AXPMultiSourceType, AXPOpenEntityDetailsCommand, AXPQuickEntityModifyPopupAction, AXPQuickModifyEntityWorkflow, AXPRelatedColumnEnrichmentService, AXPRelatedColumnMetadataResolver, AXPSelectorStructureWidget, AXPSelectorStructureWidgetColumnComponent, AXPSelectorStructureWidgetEditComponent, AXPSelectorStructureWidgetViewComponent, AXPShowDetailViewAction, AXPShowDetailsViewWorkflow, AXPShowListViewAction, AXPShowListViewWorkflow, AXPTruncatedBreadcrumbComponent, AXPUpdateEntityCommand, AXPViewEntityDetailsCommand, AXP_CATEGORY_TREE_ROOT_TITLE_I18N_KEY, AXP_DATA_SEEDER_TOKEN, AXP_ENTITY_ACTION_PLUGIN, AXP_ENTITY_CONFIG_TOKEN, AXP_ENTITY_DEFINITION_LOADER, AXP_ENTITY_MODIFIER, AXP_ENTITY_STORAGE_BACKEND, AXP_ENTITY_STORAGE_MIDDLEWARE, AXP_MULTI_SOURCE_DEFINITION_PROVIDER, AXP_RECORD_WORKFLOW_INFO_CORRELATION_ID_FIELD, AXP_RECORD_WORKFLOW_INFO_DEFINITION_ID_FIELD, AXP_RECORD_WORKFLOW_INFO_INSTANCE_ID_FIELD, DEFAULT_COLUMN_ORDER, DEFAULT_PAIR_SPAN_RULES, DEFAULT_PROPERTY_ORDER, DEFAULT_SECTION_ORDER, ENTITY_LIST_ROUTE_CONTEXT_SESSION_KEY, EntityBuilder, EntityDataAccessor, actionExists, applyDataSourcePagingWithoutLoad, attachmentFieldCount, attachmentsPlugin, attachmentsSemanticallyEqual, axpCreateEntityAiToolInputDefaults, axpCreateEntityCommandDefinition, buildAXPRecordWorkflowInfo, canPersistEntityListState, cloneLayoutArrays, collectEntityQuickSearchFieldPaths, collectNestedCreateHiddenProperties, collectNestedFieldPathsFromEntityColumns, collectQuickSearchPathsFromSingleEntityDefinition, columnOrderingMiddleware, columnOrderingMiddlewareProvider, columnWidthMiddleware, columnWidthMiddlewareProvider, commandMessageTextForError, committedAttachments, computeEntityAggregates, createColumnOrderingMiddlewareProvider, createLayoutOrderingMiddlewareProvider, createModifierContext, defaultCardLayoutMiddleware, defaultCardLayoutMiddlewareProvider, defaultMultiLanguageMiddleware, defaultMultiLanguageMiddlewareProvider, detectEntityChanges, ensureLayoutPropertyView, ensureLayoutSection, ensureListActions, entityDetailsCreateActions, entityDetailsCreateActionsDeferredParent, entityDetailsCrudActions, entityDetailsEditAction, entityDetailsNewEditAction, entityDetailsReferenceCondition, entityDetailsReferenceCreateActions, entityDetailsSimpleCondition, entityMasterBulkDeleteAction, entityMasterCreateAction, entityMasterCrudActions, entityMasterDeleteAction, entityMasterEditAction, entityMasterRecordActions, entityMasterViewAction, entityOverrideDetailsViewAction, eventDispatchMiddleware, filterSortEntityRows, findEntityListRowDataInTree, fingerprintAttachmentItem, fingerprintAttachments, formatLookupItemDisplay, getDataSourcePageIndex, getEntityListRowId, getMasterInterfacePropertySortKey, getRecordWorkflowCorrelationId, getRecordWorkflowInstanceId, hasFileUploaderTitleOrDescriptionFields, isAXPMiddlewareAbortError, isAttachmentListEntry, isCategoryEntity, isCategoryFilter, isFileListItem, isFileUploaderEditDialogAuto, isLegacyEntityDataSelectorOptions, layoutOrderingMiddlewareFactory, layoutOrderingMiddlewareProvider, mapEntityStorageErrorToCommandResult, mapLegacyEntityDataSelectorOptions, mergeForeignKeyFieldIntoCreateActions, normalizeEntityDataSelectorOptions, normalizeEntityFieldToFileList, normalizeEntityListPersistenceMode, normalizeListPaging, persistedAttachments, provideEntity, resolveEntityPluginDetailPageOrder, resolveFileUploaderEditDialog, resolveFileUploaderEntityScope, resolveLookupDisplayField, resolveLookupDisplayTemplate, restoreEntityListExpandedRows, runEntityQuery, searchResultDescriptionMiddleware, searchResultDescriptionMiddlewareProvider, shouldLoadEntityListStateFromStorage, shouldResetEntityListStateOnRouteEntry };
|
|
4488
|
+
export type { AXPAuditEvent, AXPCollectEntityQuickSearchPathsResolver, AXPDataSeeder, AXPEntityActionPlugin, AXPEntityAggregateMeasure, AXPEntityAggregateOptions, AXPEntityAggregateReducerType, AXPEntityAggregateRequest, AXPEntityAggregateResult, AXPEntityCategoryWidgetOptions, AXPEntityChangeSet, AXPEntityConfigs, AXPEntityCreateDto, AXPEntityDataSelectorCategoryFilterOptions, AXPEntityDataSelectorCategoryOptions, AXPEntityDataSelectorCreateOptions, AXPEntityDataSelectorFilterOptions, AXPEntityDataSelectorGridOptions, AXPEntityDataSelectorOpenInput, AXPEntityDataSelectorOpenOptions, AXPEntityDataSelectorOptions, AXPEntityDataSelectorResult, AXPEntityDataSelectorRowActionsConfig, AXPEntityDataSelectorSearchOptions, AXPEntityDataSelectorSelectionOptions, AXPEntityDataSelectorSortOptions, AXPEntityDefinitionLoader, AXPEntityDefinitionPreloader, AXPEntityDeleteOptions, AXPEntityDetailDto, AXPEntityDetailPopoverOptions, AXPEntityLayoutLike, AXPEntityLayoutPropertyLike, AXPEntityLayoutSectionLike, AXPEntityListEntry, AXPEntityListExpandRowRef, AXPEntityListInput, AXPEntityListItemDto, AXPEntityListPagingState, AXPEntityListPersistenceMode, AXPEntityListToolbarConvertOptions, AXPEntityMasterListCardLayout, AXPEntityMasterListCardSecondaryActionItem, AXPEntityMasterListViewSortPropViewModel, AXPEntityModel, AXPEntityModifier, AXPEntityModifierContext, AXPEntityModifierProvider, AXPEntityOutputDto, AXPEntityPreloadEntity, AXPEntityQueryAllOptions, AXPEntityQueryAllResult, AXPEntityStorageContext, AXPEntityStorageMiddleware, AXPEntityUpdateDto, AXPFileListLook, AXPFileUploaderEditDialogFieldOptions, AXPFileUploaderEditDialogMode, AXPFileUploaderEditDialogOptions, AXPFileUploaderEntityFilesScope, AXPFileUploaderLoadFilesInput, AXPFileUploaderLoadFilesResult, AXPFileUploaderSaveFilesInput, AXPFileUploaderSaveFilesResult, AXPFileUploaderShowFileListEntityContext, AXPFileUploaderShowFileListOptions, AXPFileUploaderUploadActionDescriptor, AXPFileUploaderWidgetColumnOptions, AXPFileUploaderWidgetDesignerOptions, AXPFileUploaderWidgetEditOptions, AXPFileUploaderWidgetOptions, AXPFileUploaderWidgetPrintOptions, AXPFileUploaderWidgetViewOptions, AXPGetEntityDetailsQueryInput, AXPGetEntityDetailsQueryResult, AXPLookupColumnResolveOptions, AXPLookupColumnResolveStrategy, AXPLookupDisplayOptions, AXPLookupPopoverOptions, AXPLookupSelectorRowActionsConfig, AXPLookupWidgetLookType, AXPLookupWidgetOptions, AXPMockDto, AXPMultiSourceDefinition, AXPMultiSourceDefinitionProvider, AXPMultiSourceItem, AXPMultiSourceRef, AXPMultiSourceSearchResult, AXPMultiSourceSearchResultItem, AXPMultiSourceSelectorOpenConfig, AXPMultiSourceSelectorResult, AXPMultiSourceSelectorWidgetOptions, AXPMultiSourceValue, AXPOpenEntityDetailsCommandInput, AXPRecordAuditInfo, AXPRecordOwnershipInfo, AXPRecordStateInfo, AXPRecordWorkflowInfo, AXPRelatedColumnMetadata, AXPSelectorStructureFieldDef, AXPSelectorStructureIdentityDisplay, AXPSelectorStructurePresentationMode, AXPSelectorStructureSelectorMode, AXPSelectorStructureStructureMode, AXPSelectorStructureWidgetColumnOptions, AXPSelectorStructureWidgetDesignerOptions, AXPSelectorStructureWidgetEditOptions, AXPSelectorStructureWidgetOptions, AXPSelectorStructureWidgetPrintOptions, AXPSelectorStructureWidgetViewOptions, AXPShowListViewCondition, AttachmentsDisplayMode, AttachmentsPluginOptions, CategoryQueryEvent, CategoryQueryFunction, CategoryQueryResult, CategoryTreeConfig, CategoryTreeNodeData, EntityDetailPluginPageSlot, PairSpanRule, ResolveEntityPluginDetailPageOrderOptions, RunEntityQueryAdapters, SectionOrderConfig, SkipEntityComponentPageRef };
|
|
@@ -6,7 +6,7 @@ import { AXClickEvent } from '@acorex/cdk/common';
|
|
|
6
6
|
import * as i1 from '@acorex/cdk/drawer';
|
|
7
7
|
import { AXDrawerItemDirective } from '@acorex/cdk/drawer';
|
|
8
8
|
import * as _acorex_platform_core from '@acorex/platform/core';
|
|
9
|
-
import { AXPActionMenuItem, AXPBreadcrumbItem, AXPMultiLanguageString, AXPBadge, AXPPageStatus, AXPBackButton, AXPExecuteCommand, AXPDeviceService, AXPExecuteCommandResult, AXPExpressionEvaluatorScope, AXPBroadcastEventService, AXPContextChangeEvent } from '@acorex/platform/core';
|
|
9
|
+
import { AXPActionMenuItem, AXPBreadcrumbItem, AXPMultiLanguageString, AXPBadge, AXPPageStatus, AXPBackButton, AXPExecuteCommand, AXPDeviceService, AXPKeyboardShortcut, AXPExecuteCommandResult, AXPExpressionEvaluatorScope, AXPBroadcastEventService, AXPContextChangeEvent, AXPKeyboardShortcutChord } from '@acorex/platform/core';
|
|
10
10
|
import { AXPCommandService, AXPPolicyEngineService } from '@acorex/platform/runtime';
|
|
11
11
|
import { AXPWorkflowService } from '@acorex/platform/workflow';
|
|
12
12
|
import * as _acorex_core_translation from '@acorex/core/translation';
|
|
@@ -14,12 +14,14 @@ import { AXTranslationService } from '@acorex/core/translation';
|
|
|
14
14
|
import { AXToastService } from '@acorex/components/toast';
|
|
15
15
|
import { AXFormatService } from '@acorex/core/format';
|
|
16
16
|
import { AXPSessionService } from '@acorex/platform/auth';
|
|
17
|
-
import { AXPHomePageService, AXPEntityCommandScope } from '@acorex/platform/common';
|
|
17
|
+
import { AXPHomePageService, AXPSettingsService, AXPEntityCommandScope } from '@acorex/platform/common';
|
|
18
18
|
import { AXBasePageComponent } from '@acorex/components/page';
|
|
19
19
|
import * as _acorex_platform_layout_widget_core from '@acorex/platform/layout/widget-core';
|
|
20
20
|
import { AXPWidgetNode, AXPPageStatus as AXPPageStatus$1, AXPWidgetContainerComponent } from '@acorex/platform/layout/widget-core';
|
|
21
21
|
import * as _acorex_platform_layout_views from '@acorex/platform/layout/views';
|
|
22
22
|
import { AXFormComponent } from '@acorex/components/form';
|
|
23
|
+
import { AXTabStripChangedEvent } from '@acorex/components/tabs';
|
|
24
|
+
import * as _angular_router from '@angular/router';
|
|
23
25
|
import { Router, ActivatedRoute } from '@angular/router';
|
|
24
26
|
|
|
25
27
|
declare abstract class AXPPageLayoutBase {
|
|
@@ -47,6 +49,10 @@ declare abstract class AXPPageLayoutBase {
|
|
|
47
49
|
abstract onBackButtonClick: () => void | Promise<void>;
|
|
48
50
|
abstract startSideToggle: () => void | Promise<void>;
|
|
49
51
|
abstract execute: (command: AXPExecuteCommand) => void | Promise<void>;
|
|
52
|
+
/** Whether the page has user-origin edits that are not yet persisted. */
|
|
53
|
+
abstract hasUnsavedChanges(): boolean;
|
|
54
|
+
/** Resolves the page title badge (used by host layouts for nested entity pages). */
|
|
55
|
+
abstract resolvePageBadge(): AXPBadge | null | Promise<AXPBadge | null>;
|
|
50
56
|
}
|
|
51
57
|
|
|
52
58
|
declare class AXPPageLayoutComponent {
|
|
@@ -121,6 +127,12 @@ declare class AXPPageLayoutComponent {
|
|
|
121
127
|
protected handleBackdropClick(e: AXClickEvent): boolean;
|
|
122
128
|
protected execute(command: AXPExecuteCommand): Promise<void>;
|
|
123
129
|
protected handleOnBackdropClick(event: MouseEvent): void;
|
|
130
|
+
/**
|
|
131
|
+
* Breadcrumbs and other in-page `navigate` commands bypass `routerLink`, so prompt here
|
|
132
|
+
* when the hosted page implements {@link AXPUnsavedChangesCanDeactivate}.
|
|
133
|
+
* A successful confirm sets `leaveConfirmed` for the router guard on the subsequent navigation.
|
|
134
|
+
*/
|
|
135
|
+
private canLeaveCurrentPage;
|
|
124
136
|
protected getEntityData(): Record<string, any> | null;
|
|
125
137
|
protected handleStatusTransition(transition: any): Promise<void>;
|
|
126
138
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXPPageLayoutComponent, never>;
|
|
@@ -193,6 +205,7 @@ declare abstract class AXPPageLayoutBaseComponent implements AXPPageLayoutBase {
|
|
|
193
205
|
protected readonly toastService: AXToastService;
|
|
194
206
|
protected readonly homePageService: AXPHomePageService;
|
|
195
207
|
protected readonly policyService: AXPPolicyEngineService;
|
|
208
|
+
protected readonly settingsService: AXPSettingsService;
|
|
196
209
|
private _updateTrigger;
|
|
197
210
|
protected updateTrigger: _angular_core.Signal<number>;
|
|
198
211
|
protected recompute(): void;
|
|
@@ -212,7 +225,9 @@ declare abstract class AXPPageLayoutBaseComponent implements AXPPageLayoutBase {
|
|
|
212
225
|
protected getPageBreadcrumbs(): AXPBreadcrumbItem[] | Promise<AXPBreadcrumbItem[]>;
|
|
213
226
|
badge: _angular_core.WritableSignal<AXPBadge | null>;
|
|
214
227
|
hasBadge: _angular_core.Signal<boolean>;
|
|
215
|
-
|
|
228
|
+
hasUnsavedChanges(): boolean;
|
|
229
|
+
protected getPageBadge(): Promise<AXPBadge | null>;
|
|
230
|
+
resolvePageBadge(): Promise<AXPBadge | null>;
|
|
216
231
|
status: _angular_core.WritableSignal<AXPPageStatus | null>;
|
|
217
232
|
hasStatus: _angular_core.Signal<boolean>;
|
|
218
233
|
protected getPageStatus(): AXPPageStatus | null | Promise<AXPPageStatus | null>;
|
|
@@ -244,6 +259,15 @@ declare abstract class AXPPageLayoutBaseComponent implements AXPPageLayoutBase {
|
|
|
244
259
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<AXPPageLayoutBaseComponent, "ng-component", never, {}, {}, never, never, true, never>;
|
|
245
260
|
}
|
|
246
261
|
|
|
262
|
+
/**
|
|
263
|
+
* Builds the standard "Not Saved" page badge when the global show-page-badge setting is enabled.
|
|
264
|
+
*/
|
|
265
|
+
declare function buildNotSavedPageBadge(translateService: AXTranslationService, settingsService: AXPSettingsService): Promise<AXPBadge | null>;
|
|
266
|
+
/**
|
|
267
|
+
* Whether a command name represents a discard/revert action on a details sub-page.
|
|
268
|
+
*/
|
|
269
|
+
declare function isDiscardCommand(commandName: string, rejectCommandName?: string | null): boolean;
|
|
270
|
+
|
|
247
271
|
declare abstract class AXPPopupLayoutBase {
|
|
248
272
|
abstract primaryMenuItems: Signal<AXPActionMenuItem[]>;
|
|
249
273
|
abstract secondaryMenuItems: Signal<AXPActionMenuItem[]>;
|
|
@@ -463,6 +487,7 @@ interface AXPLayoutDetailsViewPage {
|
|
|
463
487
|
color: string;
|
|
464
488
|
visible?: string | boolean;
|
|
465
489
|
command: AXPExecuteCommand;
|
|
490
|
+
shortcuts?: AXPKeyboardShortcut[];
|
|
466
491
|
};
|
|
467
492
|
reject?: {
|
|
468
493
|
title: string;
|
|
@@ -470,6 +495,7 @@ interface AXPLayoutDetailsViewPage {
|
|
|
470
495
|
color: string;
|
|
471
496
|
visible?: string | boolean;
|
|
472
497
|
command: AXPExecuteCommand;
|
|
498
|
+
shortcuts?: AXPKeyboardShortcut[];
|
|
473
499
|
};
|
|
474
500
|
};
|
|
475
501
|
};
|
|
@@ -502,14 +528,9 @@ declare const AXPLayoutDetailsViewViewModel: _angular_core.Type<{
|
|
|
502
528
|
currentPage: _angular_core.Signal<AXPLayoutDetailsViewPage | null>;
|
|
503
529
|
currentTab: _angular_core.Signal<AXPLayoutDetailsViewTabItem | null>;
|
|
504
530
|
pageSelectedRows: _angular_core.Signal<any[]>;
|
|
505
|
-
renderedTabsCache: _angular_core.Signal<Record<string, {
|
|
506
|
-
tabId: string;
|
|
507
|
-
tab: AXPLayoutDetailsViewTabItem;
|
|
508
|
-
}[]>>;
|
|
509
531
|
evaluatedPageContent: _angular_core.Signal<AXPWidgetNode[]>;
|
|
510
532
|
evaluatedTabContentsById: _angular_core.Signal<Record<string, AXPWidgetNode[]>>;
|
|
511
|
-
|
|
512
|
-
formBaselineCommitted: _angular_core.Signal<boolean>;
|
|
533
|
+
formDirty: _angular_core.Signal<boolean>;
|
|
513
534
|
icon: _angular_core.Signal<string | null>;
|
|
514
535
|
content: _angular_core.Signal<_acorex_platform_layout_views.AXPPageContentItem[]>;
|
|
515
536
|
showPages: _angular_core.Signal<boolean>;
|
|
@@ -520,16 +541,12 @@ declare const AXPLayoutDetailsViewViewModel: _angular_core.Type<{
|
|
|
520
541
|
changesCount: _angular_core.Signal<1 | 0>;
|
|
521
542
|
isLoaded: _angular_core.Signal<boolean>;
|
|
522
543
|
currentPageSelectedRows: _angular_core.Signal<any[]>;
|
|
523
|
-
|
|
524
|
-
tabId: string;
|
|
525
|
-
tab: AXPLayoutDetailsViewTabItem;
|
|
526
|
-
}[]>;
|
|
544
|
+
activeTabContent: _angular_core.Signal<AXPWidgetNode[]>;
|
|
527
545
|
loadAdapter: (adapter: AXPLayoutDetailsViewAdapter) => Promise<void>;
|
|
528
546
|
loadPage: (pageId?: string, forceRefresh?: boolean) => Promise<void>;
|
|
529
547
|
load: (adapter: AXPLayoutDetailsViewAdapter) => Promise<void>;
|
|
530
|
-
updateContext: (context: any
|
|
531
|
-
|
|
532
|
-
resetFormBaselineCommitted: () => void;
|
|
548
|
+
updateContext: (context: any) => void;
|
|
549
|
+
setFormDirty: (dirty: boolean) => void;
|
|
533
550
|
updatePageSelectedRows: (rows: any[]) => void;
|
|
534
551
|
currentPagePrimaryActions: () => Promise<any>;
|
|
535
552
|
currentPageSecondaryActions: () => Promise<any>;
|
|
@@ -537,9 +554,6 @@ declare const AXPLayoutDetailsViewViewModel: _angular_core.Type<{
|
|
|
537
554
|
currentPageTabs: () => AXPLayoutDetailsViewTabItem[] | undefined;
|
|
538
555
|
setCurrentPage: (page: AXPLayoutDetailsViewPage | null) => void;
|
|
539
556
|
setCurrentTab: (tab: AXPLayoutDetailsViewTabItem) => void;
|
|
540
|
-
getCurrentTabContent: () => AXPWidgetNode[];
|
|
541
|
-
getRenderedTabContent: (tabId: string) => AXPWidgetNode[];
|
|
542
|
-
clearPageTabCache: (pageId: string) => void;
|
|
543
557
|
backButtonTitle: () => _acorex_core_translation.AXMultiLanguageString;
|
|
544
558
|
getPageTitle: () => Promise<AXPMultiLanguageString>;
|
|
545
559
|
getPageDescription: () => Promise<AXPMultiLanguageString | null>;
|
|
@@ -554,8 +568,9 @@ declare const AXPLayoutDetailsViewViewModel: _angular_core.Type<{
|
|
|
554
568
|
icon?: string;
|
|
555
569
|
command?: AXPExecuteCommand;
|
|
556
570
|
}[]>;
|
|
571
|
+
applySavedState: (context: Record<string, unknown>) => void;
|
|
557
572
|
discard: () => Promise<void>;
|
|
558
|
-
save: (command: AXPExecuteCommand, form: AXFormComponent) => Promise<boolean>;
|
|
573
|
+
save: (command: AXPExecuteCommand, form: AXFormComponent, liveContext?: Record<string, unknown>) => Promise<boolean>;
|
|
559
574
|
goToListPage: () => void;
|
|
560
575
|
} & _ngrx_signals.StateSource<{
|
|
561
576
|
adapter: AXPLayoutDetailsViewAdapter | null;
|
|
@@ -567,14 +582,9 @@ declare const AXPLayoutDetailsViewViewModel: _angular_core.Type<{
|
|
|
567
582
|
currentPage: AXPLayoutDetailsViewPage | null;
|
|
568
583
|
currentTab: AXPLayoutDetailsViewTabItem | null;
|
|
569
584
|
pageSelectedRows: any[];
|
|
570
|
-
renderedTabsCache: Record<string, Array<{
|
|
571
|
-
tabId: string;
|
|
572
|
-
tab: AXPLayoutDetailsViewTabItem;
|
|
573
|
-
}>>;
|
|
574
585
|
evaluatedPageContent: AXPWidgetNode[];
|
|
575
586
|
evaluatedTabContentsById: Record<string, AXPWidgetNode[]>;
|
|
576
|
-
|
|
577
|
-
formBaselineCommitted: boolean;
|
|
587
|
+
formDirty: boolean;
|
|
578
588
|
}>>;
|
|
579
589
|
|
|
580
590
|
declare class AXPLayoutDetailsViewComponent extends AXPPageLayoutBaseComponent implements OnInit, OnDestroy {
|
|
@@ -590,16 +600,11 @@ declare class AXPLayoutDetailsViewComponent extends AXPPageLayoutBaseComponent i
|
|
|
590
600
|
currentPage: _angular_core.Signal<AXPLayoutDetailsViewPage | null>;
|
|
591
601
|
currentTab: _angular_core.Signal<_acorex_platform_layout_views.AXPLayoutDetailsViewTabItem | null>;
|
|
592
602
|
pageSelectedRows: _angular_core.Signal<any[]>;
|
|
593
|
-
renderedTabsCache: _angular_core.Signal<Record<string, {
|
|
594
|
-
tabId: string;
|
|
595
|
-
tab: _acorex_platform_layout_views.AXPLayoutDetailsViewTabItem;
|
|
596
|
-
}[]>>;
|
|
597
603
|
evaluatedPageContent: _angular_core.Signal<_acorex_platform_layout_widget_core.AXPWidgetNode[]>;
|
|
598
604
|
evaluatedTabContentsById: _angular_core.Signal<Record<string, _acorex_platform_layout_widget_core.AXPWidgetNode[]>>;
|
|
599
|
-
|
|
600
|
-
formBaselineCommitted: _angular_core.Signal<boolean>;
|
|
605
|
+
formDirty: _angular_core.Signal<boolean>;
|
|
601
606
|
icon: _angular_core.Signal<string | null>;
|
|
602
|
-
content: _angular_core.Signal<
|
|
607
|
+
content: _angular_core.Signal<AXPPageContentItem[]>;
|
|
603
608
|
showPages: _angular_core.Signal<boolean>;
|
|
604
609
|
isLarge: _angular_core.Signal<boolean>;
|
|
605
610
|
isBusy: _angular_core.Signal<boolean>;
|
|
@@ -608,16 +613,12 @@ declare class AXPLayoutDetailsViewComponent extends AXPPageLayoutBaseComponent i
|
|
|
608
613
|
changesCount: _angular_core.Signal<1 | 0>;
|
|
609
614
|
isLoaded: _angular_core.Signal<boolean>;
|
|
610
615
|
currentPageSelectedRows: _angular_core.Signal<any[]>;
|
|
611
|
-
|
|
612
|
-
tabId: string;
|
|
613
|
-
tab: _acorex_platform_layout_views.AXPLayoutDetailsViewTabItem;
|
|
614
|
-
}[]>;
|
|
616
|
+
activeTabContent: _angular_core.Signal<_acorex_platform_layout_widget_core.AXPWidgetNode[]>;
|
|
615
617
|
loadAdapter: (adapter: AXPLayoutDetailsViewAdapter) => Promise<void>;
|
|
616
618
|
loadPage: (pageId?: string, forceRefresh?: boolean) => Promise<void>;
|
|
617
619
|
load: (adapter: AXPLayoutDetailsViewAdapter) => Promise<void>;
|
|
618
|
-
updateContext: (context: any
|
|
619
|
-
|
|
620
|
-
resetFormBaselineCommitted: () => void;
|
|
620
|
+
updateContext: (context: any) => void;
|
|
621
|
+
setFormDirty: (dirty: boolean) => void;
|
|
621
622
|
updatePageSelectedRows: (rows: any[]) => void;
|
|
622
623
|
currentPagePrimaryActions: () => Promise<any>;
|
|
623
624
|
currentPageSecondaryActions: () => Promise<any>;
|
|
@@ -625,9 +626,6 @@ declare class AXPLayoutDetailsViewComponent extends AXPPageLayoutBaseComponent i
|
|
|
625
626
|
currentPageTabs: () => _acorex_platform_layout_views.AXPLayoutDetailsViewTabItem[] | undefined;
|
|
626
627
|
setCurrentPage: (page: AXPLayoutDetailsViewPage | null) => void;
|
|
627
628
|
setCurrentTab: (tab: _acorex_platform_layout_views.AXPLayoutDetailsViewTabItem) => void;
|
|
628
|
-
getCurrentTabContent: () => _acorex_platform_layout_widget_core.AXPWidgetNode[];
|
|
629
|
-
getRenderedTabContent: (tabId: string) => _acorex_platform_layout_widget_core.AXPWidgetNode[];
|
|
630
|
-
clearPageTabCache: (pageId: string) => void;
|
|
631
629
|
backButtonTitle: () => _acorex_core_translation.AXMultiLanguageString;
|
|
632
630
|
getPageTitle: () => Promise<AXPMultiLanguageString>;
|
|
633
631
|
getPageDescription: () => Promise<AXPMultiLanguageString | null>;
|
|
@@ -642,8 +640,9 @@ declare class AXPLayoutDetailsViewComponent extends AXPPageLayoutBaseComponent i
|
|
|
642
640
|
icon?: string;
|
|
643
641
|
command?: AXPExecuteCommand;
|
|
644
642
|
}[]>;
|
|
643
|
+
applySavedState: (context: Record<string, unknown>) => void;
|
|
645
644
|
discard: () => Promise<void>;
|
|
646
|
-
save: (command: AXPExecuteCommand, form: AXFormComponent) => Promise<boolean>;
|
|
645
|
+
save: (command: AXPExecuteCommand, form: AXFormComponent, liveContext?: Record<string, unknown>) => Promise<boolean>;
|
|
647
646
|
goToListPage: () => void;
|
|
648
647
|
} & _ngrx_signals.StateSource<{
|
|
649
648
|
adapter: AXPLayoutDetailsViewAdapter | null;
|
|
@@ -655,31 +654,34 @@ declare class AXPLayoutDetailsViewComponent extends AXPPageLayoutBaseComponent i
|
|
|
655
654
|
currentPage: AXPLayoutDetailsViewPage | null;
|
|
656
655
|
currentTab: _acorex_platform_layout_views.AXPLayoutDetailsViewTabItem | null;
|
|
657
656
|
pageSelectedRows: any[];
|
|
658
|
-
renderedTabsCache: Record<string, Array<{
|
|
659
|
-
tabId: string;
|
|
660
|
-
tab: _acorex_platform_layout_views.AXPLayoutDetailsViewTabItem;
|
|
661
|
-
}>>;
|
|
662
657
|
evaluatedPageContent: _acorex_platform_layout_widget_core.AXPWidgetNode[];
|
|
663
658
|
evaluatedTabContentsById: Record<string, _acorex_platform_layout_widget_core.AXPWidgetNode[]>;
|
|
664
|
-
|
|
665
|
-
formBaselineCommitted: boolean;
|
|
659
|
+
formDirty: boolean;
|
|
666
660
|
}>;
|
|
667
661
|
protected router: Router;
|
|
668
662
|
protected route: ActivatedRoute;
|
|
669
663
|
protected eventService: AXPBroadcastEventService;
|
|
670
664
|
protected deviceService: AXPDeviceService;
|
|
665
|
+
private readonly unsavedChangesConfirm;
|
|
666
|
+
private readonly unsavedChangesPopstate;
|
|
667
|
+
private readonly pageComponentInstanceRegistry;
|
|
668
|
+
private readonly shortcutRegistry;
|
|
669
|
+
private readonly destroyRef;
|
|
670
|
+
private readonly elementRef;
|
|
671
671
|
private onSelectionChangeSubscription?;
|
|
672
|
+
/** Prevents sidebar tab init events from pushing history before {@link ngOnInit} load completes. */
|
|
673
|
+
private detailsLayoutReady;
|
|
672
674
|
private readonly destroyed$;
|
|
673
|
-
private formBaselineCaptured;
|
|
674
|
-
private formBaselinePageKey;
|
|
675
|
-
private formBaselineTimer?;
|
|
676
|
-
private suppressDirtySync;
|
|
677
675
|
private footerActionsGeneration;
|
|
678
|
-
private
|
|
676
|
+
private keyboardShortcutRegistrationGeneration;
|
|
677
|
+
/** Header actions with resolved shortcut chords, keyed by command name. */
|
|
678
|
+
private readonly actionShortcutEntries;
|
|
679
679
|
/** Save/discard use live {@link AXPLayoutDetailsViewViewModel.isDirty}; other actions use evaluated `visible`. */
|
|
680
680
|
private static isTruthyActionFlag;
|
|
681
681
|
protected form: _angular_core.Signal<AXFormComponent | undefined>;
|
|
682
682
|
protected widgetContainer: _angular_core.Signal<AXPWidgetContainerComponent | undefined>;
|
|
683
|
+
private readonly sidebarTabs;
|
|
684
|
+
private sidebarTabChangeSuppressed;
|
|
683
685
|
protected footerPrimaryActions: _angular_core.WritableSignal<AXPActionMenuItem[]>;
|
|
684
686
|
protected footerSecondaryActions: _angular_core.WritableSignal<AXPActionMenuItem[]>;
|
|
685
687
|
protected footerActions: _angular_core.Signal<AXPActionMenuItem[]>;
|
|
@@ -689,6 +691,7 @@ declare class AXPLayoutDetailsViewComponent extends AXPPageLayoutBaseComponent i
|
|
|
689
691
|
color: string;
|
|
690
692
|
visible?: string | boolean;
|
|
691
693
|
command: AXPExecuteCommand;
|
|
694
|
+
shortcuts?: _acorex_platform_core.AXPKeyboardShortcut[];
|
|
692
695
|
} | null>;
|
|
693
696
|
protected acceptFooterCommand: _angular_core.Signal<{
|
|
694
697
|
title: string;
|
|
@@ -696,10 +699,13 @@ declare class AXPLayoutDetailsViewComponent extends AXPPageLayoutBaseComponent i
|
|
|
696
699
|
color: string;
|
|
697
700
|
visible?: string | boolean;
|
|
698
701
|
command: AXPExecuteCommand;
|
|
702
|
+
shortcuts?: _acorex_platform_core.AXPKeyboardShortcut[];
|
|
699
703
|
} | null>;
|
|
700
704
|
protected hasSaveDiscardFooterCommands: _angular_core.Signal<boolean>;
|
|
701
|
-
/** Entity save/discard — driven live by
|
|
705
|
+
/** Entity save/discard — driven live by widget/container dirty state, not evaluated action metadata. */
|
|
702
706
|
protected showSaveDiscardFooter: _angular_core.Signal<boolean>;
|
|
707
|
+
/** Live dirty flag for widget-based entity forms (not component-hosted pages). */
|
|
708
|
+
protected liveFormIsDirty: _angular_core.Signal<boolean>;
|
|
703
709
|
protected hasVisibleFooterPrimaryActions: _angular_core.Signal<boolean>;
|
|
704
710
|
protected hasVisibleFooterSecondaryActions: _angular_core.Signal<boolean>;
|
|
705
711
|
protected isSaveDiscardFooterAction(action: AXPActionMenuItem): boolean;
|
|
@@ -715,16 +721,15 @@ declare class AXPLayoutDetailsViewComponent extends AXPPageLayoutBaseComponent i
|
|
|
715
721
|
ngOnDestroy(): void;
|
|
716
722
|
private refreshFooterActions;
|
|
717
723
|
protected handleOnContextChanged(e: AXPContextChangeEvent): void;
|
|
724
|
+
private getLiveFormContext;
|
|
725
|
+
private finalizeSave;
|
|
726
|
+
private finalizeDiscard;
|
|
718
727
|
/**
|
|
719
|
-
*
|
|
720
|
-
*/
|
|
721
|
-
private resetFormDirtyBaseline;
|
|
722
|
-
/**
|
|
723
|
-
* Commits a clean baseline immediately when widgets are mounted; otherwise defers to idle commit.
|
|
728
|
+
* `ax-tabs` selects on click before we can confirm. Revert synchronously, then confirm + switch.
|
|
724
729
|
*/
|
|
725
|
-
|
|
726
|
-
|
|
727
|
-
|
|
730
|
+
protected handleSidebarTabChanged(event: AXTabStripChangedEvent): void;
|
|
731
|
+
protected handleSelectPage(page: AXPLayoutDetailsViewPage): Promise<void>;
|
|
732
|
+
private completePageSwitch;
|
|
728
733
|
protected getAllPrimaryActions(): Promise<AXPLayoutDetailsViewAction[]>;
|
|
729
734
|
getPrimaryMenuItems(): Promise<AXPActionMenuItem[]>;
|
|
730
735
|
protected getFooterPrimaryActions(): Promise<AXPActionMenuItem[]>;
|
|
@@ -742,12 +747,65 @@ declare class AXPLayoutDetailsViewComponent extends AXPPageLayoutBaseComponent i
|
|
|
742
747
|
*/
|
|
743
748
|
getEntityData(): Record<string, any> | null;
|
|
744
749
|
onBackButtonClick(): Promise<void>;
|
|
750
|
+
/**
|
|
751
|
+
* Router guard hook — same unsaved-changes confirm as dialog builder {@link confirmCloseWhenDirty}.
|
|
752
|
+
*/
|
|
753
|
+
canDeactivate(): Promise<boolean>;
|
|
754
|
+
/** Active entity component page instance, when the current details sub-page is component-based. */
|
|
755
|
+
private getActivePageComponentInstance;
|
|
756
|
+
/** Component key for the current details sub-page, when content is component-based. */
|
|
757
|
+
private getActivePageComponentKey;
|
|
758
|
+
private static isComponentPageContent;
|
|
759
|
+
/** Whether the active component-based entity page has unsaved edits. */
|
|
760
|
+
private isActivePageComponentDirty;
|
|
761
|
+
/** Whether the current details page has user-origin unsaved edits (form or component page). */
|
|
762
|
+
private shouldPromptLeave;
|
|
763
|
+
/** Single gate for leaving the page or switching details sub-pages when dirty. */
|
|
764
|
+
private confirmLeaveIfDirty;
|
|
745
765
|
execute(command: AXPExecuteCommand): Promise<void>;
|
|
746
|
-
|
|
766
|
+
/**
|
|
767
|
+
* After a component-based page command (e.g. custom discard/save), align view-model dirty
|
|
768
|
+
* state and widget context with the hosted page when it no longer reports unsaved changes.
|
|
769
|
+
*/
|
|
770
|
+
private syncDirtyStateAfterPageComponentCommand;
|
|
771
|
+
/** Waits for builder/effect microtasks to finish after a component page command. */
|
|
772
|
+
private waitForComponentDirtySettle;
|
|
773
|
+
private refreshKeyboardShortcutRegistrations;
|
|
774
|
+
private collectActionShortcutEntries;
|
|
775
|
+
private isHeaderActionAvailable;
|
|
776
|
+
/** Whether save/discard core shortcuts are listed in the help dialog (page supports them). */
|
|
777
|
+
private isCoreSaveShortcutAvailable;
|
|
778
|
+
private isCoreDiscardShortcutAvailable;
|
|
779
|
+
private canExecuteSaveShortcut;
|
|
780
|
+
private canExecuteDiscardShortcut;
|
|
781
|
+
private executeDiscardViaShortcut;
|
|
782
|
+
private isActionShortcutActive;
|
|
783
|
+
private registerCoreKeyboardShortcuts;
|
|
784
|
+
private registerActionKeyboardShortcuts;
|
|
747
785
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXPLayoutDetailsViewComponent, never>;
|
|
748
786
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<AXPLayoutDetailsViewComponent, "axp-layout-details-view", never, { "adapter": { "alias": "adapter"; "required": true; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
749
787
|
}
|
|
750
788
|
|
|
789
|
+
type AXPDetailsViewActionShortcut = AXPKeyboardShortcutChord;
|
|
790
|
+
/**
|
|
791
|
+
* Returns the base workflow/command name from a composite entity action command id (`cmd&actionName`).
|
|
792
|
+
*/
|
|
793
|
+
declare function getDetailsViewActionCommandBaseName(commandName: string | undefined): string;
|
|
794
|
+
/**
|
|
795
|
+
* Resolves keyboard shortcuts for a header entity action.
|
|
796
|
+
* Explicit `shortcuts` wins; pass `[]` to disable. Otherwise known commands use platform defaults.
|
|
797
|
+
*/
|
|
798
|
+
declare function resolveDetailsViewActionShortcuts(commandBaseName: string, explicit?: readonly AXPKeyboardShortcut[]): AXPDetailsViewActionShortcut[] | undefined;
|
|
799
|
+
/**
|
|
800
|
+
* Resolves save/discard footer command shortcuts from page settings.
|
|
801
|
+
*/
|
|
802
|
+
declare function resolveDetailsViewFooterCommandShortcuts(commandName: string, explicit?: readonly AXPKeyboardShortcut[]): AXPDetailsViewActionShortcut[] | undefined;
|
|
803
|
+
|
|
804
|
+
/**
|
|
805
|
+
* Prompts for unsaved changes before leaving the entity details route (breadcrumbs, menu, back to list).
|
|
806
|
+
*/
|
|
807
|
+
declare const axpDetailsViewCanDeactivateGuard: _angular_router.CanDeactivateFn<AXPLayoutDetailsViewComponent>;
|
|
808
|
+
|
|
751
809
|
/**
|
|
752
810
|
* Registry of rendered page component instances by component key.
|
|
753
811
|
* Used so page execute can delegate to the actual component instance in the view.
|
|
@@ -789,5 +847,5 @@ declare class AXPPageComponentRendererDirective implements OnInit, OnDestroy {
|
|
|
789
847
|
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<AXPPageComponentRendererDirective, "[axp-page-component-renderer]", never, { "componentKey": { "alias": "componentKey"; "required": true; "isSignal": true; }; "rootContext": { "alias": "rootContext"; "required": false; "isSignal": true; }; "pageConfig": { "alias": "pageConfig"; "required": false; "isSignal": true; }; "options": { "alias": "options"; "required": false; "isSignal": true; }; }, { "componentReady": "componentReady"; }, never, never, true, never>;
|
|
790
848
|
}
|
|
791
849
|
|
|
792
|
-
export { AXPLayoutDetailsViewComponent, AXPLayoutDetailsViewViewModel, AXPPageComponentInstanceRegistryService, AXPPageComponentRendererDirective, AXPPageLayoutBase, AXPPageLayoutBaseComponent, AXPPageLayoutComponent, AXPPopupLayoutBase, AXPPopupLayoutBaseComponent, AXPPopupLayoutComponent };
|
|
793
|
-
export type { AXPLayoutDetailsViewAction, AXPLayoutDetailsViewAdapter, AXPLayoutDetailsViewPage, AXPLayoutDetailsViewTabItem, AXPPageContentItem };
|
|
850
|
+
export { AXPLayoutDetailsViewComponent, AXPLayoutDetailsViewViewModel, AXPPageComponentInstanceRegistryService, AXPPageComponentRendererDirective, AXPPageLayoutBase, AXPPageLayoutBaseComponent, AXPPageLayoutComponent, AXPPopupLayoutBase, AXPPopupLayoutBaseComponent, AXPPopupLayoutComponent, axpDetailsViewCanDeactivateGuard, buildNotSavedPageBadge, getDetailsViewActionCommandBaseName, isDiscardCommand, resolveDetailsViewActionShortcuts, resolveDetailsViewFooterCommandShortcuts };
|
|
851
|
+
export type { AXPDetailsViewActionShortcut, AXPLayoutDetailsViewAction, AXPLayoutDetailsViewAdapter, AXPLayoutDetailsViewPage, AXPLayoutDetailsViewTabItem, AXPPageContentItem };
|